Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
å æ¥ãã¨ããJavaScripté¢é£ã®è¨äºãèªãã§ããã¨ããã"Optimistic Updates" ã¨ããæè¡ãç´¹ä»ããã¦ãã¾ããã æ¥æ¬èªã«ç´ã㨠"æ¥½è¦³çæ´æ°" ã¨ãã£ãã¨ããã§ããããã ã¯ããã¦èããè¨èã§ãæ¥æ¬èªã®è¨äºãè¦å½ãããªãã£ãããè¨äºã«ãã¦ã¿ã¾ãã Optimistic Updatesã¨ã¯ Optimistic Updatesã¨ããã®ã¯ããã¤ãã£ãã¢ããªãSPA(Single Page Application)ãªã©ã§ä½¿ãããæè¡ã§ãéåæã®éä¿¡å¦çãæåããã¨ããåæ(楽観)ã®ãã¨ã«ãéä¿¡ã®ã¬ã¹ãã³ã¹ãå¾ ããã«æ¬¡ã®å¦çãè¡ãã¨ãããã®ã§ãã æãå¤ãOptimistic Updatesã®ä½¿ãæ¹ã¯ãUIã¸ã®åæ ããªã¯ã¨ã¹ãã®çµæãå¾ ããã«è¡ãã¨ãããã®ã§ãããã Optimistic Updatesã®ä¾ ä¾ãã°ãããããããããããã¿ã³ã®ãããªãã®ã«Optimisti
ãã¡ã㯠ãã¯ã·ãæ ªå¼ä¼ç¤¾ Advent Calendar 2014 ã®12/16ã®è¨äºã§ãã ããã«ã¡ã¯ãã¨ã³ã¸ãã¢ã®@dnskimoã§ãã å æ¥ãã¯ããã¦CORSãå®è£ ããæ©ä¼ããã£ãã®ã§ãè¦æ¸ãã¦ãã¾ã¨ãã¦ããããã¨æãã¾ãã CORSã¨ã¯ Cross-origin resource sharingã®ç¥ã§ãã èªã¿æ¹ã¯ãã³ã«ã¹ãã§ãããã§ããããï¼ Same-Origin Policyã«å¼¾ãããã«ãç°ãªããã¡ã¤ã³éã§ãªã½ã¼ã¹ãå ±æããä»çµã¿ã§ãã 2014å¹´1æã«W3Cå§åã«ãªããJSONPã«æ¿ããæ¹æ³ã¨ãã¦å¾ã ã«æ®åãã¦ãã¦ããããã§ãï¼è¦åºå ¸ï¼ã ã¢ã¯ã»ã¹ã³ã³ããã¼ã«ã®ä»æ§ãå®ç¾©ããã¦ããã®ã§ãç¹å®ã®ãµã¤ãããã®ã¿å©ç¨å¯è½ãªAPIãä½ãéãªã©ã«ä¾¿å©ã§ãã JSONPã®ãããªãè£ã¯ã¶ãçãªæ¹æ³ã§ã¯ãªãã¨ãããå人çã«å¥½ã¿ã§ãã 詳ãããã¨ã¯ãããä¸ã«ç´ æ´ãããè¨äºãããããããã®ã§
SuperAgent SuperAgent is light-weight progressive ajax API crafted for flexibility, readability, and a low learning curve after being frustrated with many of the existing request APIs. It also works with Node.js! request .post('/api/pet') .send({ name: 'Manny', species: 'cat' }) .set('X-API-Key', 'foobar') .set('Accept', 'application/json') .then(res => { alert('yay got ' + JSON.stringify(res.body
ãã¦ã³ãã¼ã ã㢠jQuery.pjax.jsã®ä½¿ãæ¹ è¤æ°ã®ã¨ãªã¢ãè¨å®ãã éçãµã¤ããã¾ãã¯ãµã¼ãã¼å¦çãããªãã§å®è£ ãã åãæ¿ãã¨ãã§ã¯ãã®ä»ãæ¹ ãã¼ã¸èªã¿è¾¼ã¿æã®å¦ç ãã©ã¡ã¼ã¿ã¨ã¤ãã³ã ãã¦ã³ãã¼ã jQueryæ¬ä½ã¨ãjquery.pjax.jsããã¦ã³ãã¼ããã¾ãã é å¸å ã®Readmeã¯ããªãå å®¹ãæ¿ãã§ããæ å ±éãå¤ããããã©ã¡ã¼ã¿ãªã©ã®é ç®ã¯ããããfalsandtruçã©ã¤ãã©ãªã使ç¨ããæ¹åãã«ã¾ã¨ãã¦ãã¾ãã ã㢠MODXã使ã£ããµã¼ãã¼ãµã¤ãå¦çããã¦pjaxãªã¯ã¨ã¹ãæã«æ¬æããã¼ã¸ã¿ã¤ãã«ãæ´æ°ããã¦ãã¾ãã â»MODXç¨ã®pjax説æãã¼ã¸ã®å ±ç¨ã®ãã¢ãã¼ã¸ãªã®ã§ãã³ãããããã®ãã¼ã¸ã¸æ»ãã¾ããã åä½ãã¢ãã¼ã¸ï¼å¥çªã§éãã¾ãï¼ jQuery.pjax.jsã®ä½¿ãæ¹ ãµã¼ãã¼ãµã¤ãã®å¦çã«PHPã使ã£ãå ´åã®é·ç§»ã¯ä»¥ä¸ã®æ§ãªæãã«ãªãã¾ãã
åç½®ãããããé·ãè¨äºã§ããæéç¡ã人ã¯ãèªã¾ãªããå¾ãããèªãã§ãã ããã æ¨æ¥ãæ¸ãããã§ããã©ããµããã¨ãã£ï¼ã§pjaxã¨ããã®ãå©ç¨ãã¦ãã¾ãã ã§ããã®éãPHPã§pjaxãã«ã¯ã©ããããããããªã¼ãã¨æãã°ã°ã£ãããåºãªãã£ããâ¦ããããããããã¨ãç°¡åããã¦ã¾ã¨ããã¾ã§ããããï¼ãã£ã¦ãã¨ããç¥ããªããã©ãã¾ã¨ãã¦ãããå¾ã§å¦æ ¡ã§ã使ãäºå®ãªã®ã§ã pjax? ã¾ããajaxãããã¾ããç¥ããªãã£ããã°ã°ã£ã¦ãã ãããåä¸ãã¡ã¤ã³ãªãéåæã«éä¿¡ãã¦ãããã¢ã¬ã§ãã ããã¦ããpushStateãã¨ãããã®ãããã¾ãã HTML5ã§ãã5.4 Session history and navigationãã¨ããAPIã追å ããããã®ä¸ã«ãThe History interface - pushStateãã¨ãããã®ããããã§ãããããã§ãã ãã®ãpushStateãã¯
jQueryã®Ajaxãã¿ãåæ¿ãªã©ã§ãã©ã¦ã¶ã®ãæ»ãããé²ãããæå¹ã«ãªããhashchangeãã©ã°ã¤ã³ããç´¹ä»ãã¾ãã jQuery hashchangeãã©ã°ã¤ã³ ï¼ï¼æ©è½ Ajaxã使ã£ã¦åãæ¿ãããã¼ã¸ã«ã¤ãã¦ã¯ãé常ããã©ã¦ã¶ã®ãæ»ãããé²ããã使ãã¾ããã ããhashchangeãã©ã°ã¤ã³ãå©ç¨ããã°ãAjaxã使ã£ã¦åãæ¿ãããã¼ã¸ã«ã¤ãã¦ããã©ã¦ã¶ã®ãæ»ãããé²ãããæå¹ã«ãªãã¾ãã ä¾ãã°ä¸ã®å³ã®â ï½â¤ã®ãã¼ã¸é·ç§»ã§ãé常ã¯ãæ»ãããé²ãããã¿ã³ã§â¡ï½â£ã®é·ç§»ã¯è¡ããã¾ããããhashchangeãã©ã°ã¤ã³ã使ãã°â¡ï½â£ã®ãã¼ã¸é·ç§»ãå®ç¾ã§ãã¾ãã å ·ä½çãªä»çµã¿ã§ãããã¾ãåºæ¬çãªJavaScriptã®åä½ã¨ãã¦ããã©ã°ã¡ã³ãï¼ãindex.html#abcãã®ã#abcãï¼ã使ã£ã¦ãã¼ã¸ãåãæ¿ããå ´åããã©ã°ã¡ã³ãã#abcãããlocation.hashãã«
ãã¤ãæ±é¨ã®é½å¸ã©ã¤ããã£ãã§ã¯ãæ¯å¹´ 11 æã®ä¸æ¬ããç´ 1 ãµæéãã¯ãªã¹ãã¹ãã¼ã±ãããéå¬ããã¾ãããã®èµ·æºã¯ 1458 å¹´ã«é¡ããå½åã¯å¬ã®çæ´»ã«å¿ è¦ãªåã ã販売ããå¸å ´ã¨ãã¦ããã£ã³ãã«ãã¹ãã¤ã¹ãç·¨ã¿ç©ãªã©ã並ãã§ãã¾ãããç¾å¨ã§ã¯ç´ 300 ã®å±å°ã並ã¶ããã¤ãã§ãæå¤§ç´ã®ã¯ãªã¹ãã¹ãã¼ã±ããã®ä¸ã¤ã¨ãªã£ã¦ãã¾ãâ¦
Internet Explorer ç³»å ã§ ã¯ãã¹ãã¡ã¤ã³éä¿¡ ãè¡ãå ´åã IE8, IE9 ã 㨠XDomainRequest ãIE10 ã§ã¯ XMLHttpRequest ãå©ç¨ãã¾ãã ããã§ã¯ãä¼¼ã¦éãªã両è ãæ¯ã¹ã¦ãã®éããã¾ã¨ãã¾ãã ï¼IE7 以åã¯èª¿ã¹ã¦ãã¾ããããï¼ ã¡ãªã¿ã«ãChrome ã Firefox ã¯ããªã以åãã XmlHttpRequest level 2 (ã¯ãã¹ãã¡ã¤ã³éä¿¡) 対å¿ãã¦ããããã§ãï¼è©³ç´°ã¯ãã¡ãï¼ã XDomainRequest ã® æ©è½å¶ç´ XDomainRequest 㯠XMLHttpRequest level 2 ã«æ¯ã¹ã¦ã以ä¸ã®å¶ç´ãããããã§ãã ã¹ãã¼ã 㯠http ã https ã®ã¿ å©ç¨å¯è½ ã¡ã½ãã 㯠GET ã POST ã®ã¿ å©ç¨å¯è½ ã«ã¹ã¿ã ããã㼠㯠å©ç¨ä¸å¯è½ Content-Type 㯠t
ä»åã¯ä¹ ãã¶ãã«Webãã¿ã§ãã HTTPã®ãã¼ã¸ããHTTPSã使ã£ã¦JavaScriptã§ãµã¼ãã¨éä¿¡ããã®ã¯ç¹ã«åé¡ç¡ãããã«ãæãã¾ãããæ®éã«Ajaxã使ããã¨ãã¦ãæå¦ããã¦ãã¾ãã¾ãã ã¯ã©ã¤ã¢ã³ãå´ï¼http://ã/test.htmlã®ä¸é¨ï¼ <a href="#" id="test">test</a> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script> $(function() { $("#test").click(function() { $.ajax({ type: "POST", url: "https://ã/hello.php", data: "name=taro", success: function(msg) { alert(
ãã¶ãããã¦ããã¾ãã S3ãCORS対å¿ã«ãªã£ãã®ã§ãå°ã触ãã¦ã¿ããã¨æãã¾ãã CORSã¯CrossDomainResourceSharingã®ç¥ã§ãã JSONPãªã©ã®ç¹æ®ãªã±ã¼ã¹ãé¤ãã¦é常ajaxãªã©ã§ã¯ã¯ãã¹ãã¡ã¤ã³éä¿¡ã¯èªãããã¦ãã¾ããã CORSã¯ãéä¿¡å ã®ãµã¼ãã¼ã§æ¡ä»¶ä»ãã§è¨±å¯ããããã¨ã§ã¯ãã¹ãã¡ã¤ã³ã¢ã¯ã»ã¹ãå¯è½ã«ããããã®ä»çµã¿ã§ãW3Cã§çå®ãããã¦ã仿§ã§ããã¢ãã³ãã©ã¦ã¶ã§ããã°ã»ã¼ãµãã¼ãããã¦ãããã¨æãã¾ãã CORSã§ã¯ãã©ã¦ã¶ãã¯ãã¹ãã¡ã¤ã³ã®ãµã¼ãã¼ã«ãªã¯ã¨ã¹ãããéã«ãäºåã«ãã®ãµã¼ãã¼ãããããè¡ããã¨ãã¦ãããªã¯ã¨ã¹ãã許å¯ãã¦ãããã©ãããHTTPã¡ã½ããã®ã²ã¨ã¤ã§ããOPTIONSã¡ã½ããã¨ããã¤ãã®HTTPãªã¯ã¨ã¹ãããããç¨ãã¦åãåããã¾ãããããPreflightãªã¯ã¨ã¹ãã¨è¨ãã¾ãã ããã¦ãã®ã¬ã¹ãã³ã¹ããã£ã¦ãã©ã¦ã¶ã¯
è±æ¯ãèããã¨ããç é¢ã§ãããªããã¨ã¹ãã§ãããªããã§æ©ãã¨æãã¾ããã©ã¡ãã§æ½è¡ãããããã®ã§ãããã ã¨ã¹ãã§è±æ¯ãããå ´åã¨ç é¢ã«è¡ãã®ã¨ã¯ãéãç¹å¾´ãããã¾ãã ãäºãã®ã¡ãªããã¨ãã¡ãªãããè¯ã調æ»ãã¦è³¢ãé¸ã³ããã§ãããããç´¹ä»ãã¾ãã ç¶ããèªã 女æ§ã§èãè¦ãããããªæãçããã¨æã£ã¦ãã¦ããæ¯æ·±ãã¨åæ°ãããã¾ããããããã§èããããã®ãè±æ¯ã餿¯ã¨ãã£ã使¥ãªã®ã§ã¯ãªãã§ããããã ãããããããã£ã使¥ããã¦ããã¾ãçãã¦ããã®ã§ãã¡ãã¡ä½æ¥ãããã®ãé¢åãã§ãã£ãããæ¯æ·±ããªãã®ã§ã¯ãªãããã¨ãã£ãå¿é ãä»ãã¾ã¨ãã¾ãã 餿¯ã®å ´åãèãèããã¨ãã£ãå¿é ãããã§ãããã æ¬å½ã«æ¯æ·±ããªãã®ãã¨ããçå½ã®ã»ã©ã¯ä»ã¯ç½®ãã¦ããã¨ãã¦ããããªæã«èããããã®ãã¨ã¹ãã§ã®è±æ¯ããå»çæ©é¢ã§ã®è±æ¯ã§ãã åºåã«ããå½±é¿ããããã¾ããããæå¤ã¨ç®èç§ã§ã®è±æ¯ãç¥ããªãæ¹ããã
2010/12/10ãã³ã¼ã¹ï¼å ç¥ãã£ã¦ã ãå ç¥ãã£ã¦ããè¨äºã¯ãããã¨ã¼ã¸ã§ã³ãæ§ããã°[netagent-blog.jp]ã«æ²è¼ããã¦ããè¨äºã§ãããç¾å¨ãããã¨ã¼ã¸ã§ã³ãã«å¨ç±ãã¦ããªãã©ã¤ã¿ã¼ã®è¨äºãå«ã¿ã¾ãã IE8+jQueryã«ããã¯ãã¹ãã¡ã¤ã³éä¿¡ã¨XDomainRequestã©ããã¼ã®ä½æ ããã«ã¡ã¯ããããã¨ã¼ã¸ã§ã³ãæ ªå¼ä¼ç¤¾ãç ç©¶éçºé¨ã®é·è°·å·ã§ãã ãã£ããã§ãããã¿ãªããã¯ãAdvent Calendarãããåãã§ããããï¼ãAdvent Calendar ã¨è¨ãã°ãä¸è¬çã«ã¯ãã¯ãªã¹ãã¹ï¼12æ25æ¥ï¼ã¾ã§ã®æ®ãæ¥æ°ãã«ã¦ã³ããã¦ã³ããã«ã¬ã³ãã¼ãæãæµ®ãã¹ãããããã¾ããããããã§ç´¹ä»ãã Advent Calendar ã¨ã¯ãæ§ã ãªæ¥çãæè¡æ¹é¢ã§æ´»èºããã¦ããããã°ã©ãæå¿ããæ¯æ¥äº¤ä»£ã§1ã¤ãã¤æè¡çãªãããã¯ã¹ãç´¹ä»ããæè¡ç³»Webã¤ãã³ãã®ãã¨ã§ã
ã¯ãã¹ãã¡ã¤ã³å¶éã®åé¿ã«ã¤ã㦠ä»ã¾ã§ã¯XHR(XmlHttpRequest)ã®ä»æ§ã«ããJSãèªã¿è¾¼ãã§ããHTMLãã¡ã¤ã«ããããµã¼ãããç°ãªããã¡ã¤ã³ãµã¼ãã¸ã®Ajaxãªã¯ã¨ã¹ããå¶éããã¦ãã¾ãããSame Origin Policyã¨å¼ã°ãã¦ãããã®ã§ããSame Origin Policyã®å½¹å²ã¨ãã¦ã¯æªæã®ããscriptãå人æ å ±çãä»ã®ãµã¤ãã«è»¢éããäºãé²ãããã§ãããã®ã»ããªãã£å¶éãåé¿ããããã«å¤ãã®äººã代表çãªJSONP(JSON with Padding)ãå©ç¨ãã¦ãµã¼ããµã¤ãã§ã¯ã©ã¤ã¢ã³ãã®ã³ã¼ã«ããã¯é¢æ°ãechoãã¦ã¯ã©ã¤ã¢ã³ãå´ã§å®è¡ããããã¨ã«ãããã¯ãã¹ãã¡ã¤ã³éã®Ajaxéä¿¡ãããã£ã½ãåãããã«å¯¾å¿ãã¦ããã¨æãã¾ãã JSONPã«ã¤ãã¦ã¯ä»¥åè¨äºãæ¸ããã®ã§å®ãããã°åç §ãã¦ãã ããã20ç§ã§çè§£ããJSONP - Yuta.Kikuchi
Ajaxã§ã¯ãã¹ãã¡ã¤ã³éä¿¡ã«ã¤ãã¦èª¿ã¹ãã®ã§ã¾ã¨ãã ã·ã³ãã«ãªä¾ client var xhr = new XMLHttpRequest(); var url = 'http://example.com/xhr-response.php'; xhr.open('GET', url, true); xhr.send(); server <?php header('Access-Control-Allow-Origin: *'); echo "ok"; Access-Control-Allow-Origin: *ãä»ãã¦ã¬ã¹ãã³ã¹ããã¨ãã¨ã©ã¼ã«ãªããçµæãåãåããã ã¯ããã¼ä»ãã®éä¿¡ client var xhr = new XMLHttpRequest(); var url = 'http://example.com/xhr-response.php'; xhr.withCrede
ååãã§ããã¯ãã¹ãã¡ã¤ã³ããã¬ã¹ãã³ã¹ããããããã«ãªã£ããã©ãCookieãéããªãã£ãä»¶ã åèããã¼ãè¦ç´ãã¦ã¿ããããªããCookieã»ããã§ããããªæç« ãçºè¦ãã§ãå度ã試ãã RPCå´ã次ã®ããã«ä¿®æ£ãAccess-Control-Allow-Credentialsãããã¼ã追å ããã <?php header('Access-Control-Allow-Origin:http://localhost'); header('Access-Control-Allow-Credentials:true'); header('Content-Type:text/plain;charset=UTF-8'); $msg = ' World'; if(isset($_COOKIE['_test_'])) { $msg = ' Again'; } else { setcookie('_te
#åºæ¬çã«ã¯ãé¢åãªè©±ãªã®ã§ãããã»ã»ã»ãã®ç¨®ã®ããã°ã©ã ãä½ãä¸ã§ã¯é¿ããããªãã»ã»ã» Webãã©ã¦ã¶ã¼ã®åºæ¬çãªã»ãã¥ãªãã£ã¼å®è£ æ¹éã¨ãã¦ã"Same Domain Policy"ã¨ããã®ããããCookieã§ã¯ãããé©å¿ããã¦ããããXMLHttpRequest(XHR)ãéããæ¥ç¶ã¯ã©ã®ãããªç¶æ³ã§ããããï¼ ã¦ã¼ã¶ã¼ããexample.com ã«ã¢ã¯ã»ã¹ããå ´åãcookieã¯example.comã«ããcookieãéä¿¡ããªãããã«ãã¦ããã®ã¯ããã©ã¦ã¶ã¼ã®å®è£ ã«ãããcookieã®çæå ã«ããcookieãéä¿¡ããªããããã§ãexample.comã¨ã¦ã¼ã¶ã¼ã¨ã®éã®ã¿ã§ããã©ã¤ãã·ã¼ã«é¢é£ãããããªæ å ±ãä¿è·ãããã¨è¨ãã®ã§ããããããã¾ãããåæã§ãã ãã ããformã¿ã°ãããµããããããå ãscriptã¿ã°ããèªã¿è¾¼ã¾ããã¹ã¯ãªããã®å®è¡ã¯ããã®ããªã·ã¼ãé©å¿ããã¦ã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}