¸üÐÂʱ¼ä:2016Äê11ÔÂ17ÈÕ15ʱ54·Ö À´Ô´:ÀÖÓã²¥¿Íwebǰ¶Ë¿ª·¢ÅàѵѧԺ ä¯ÀÀ´ÎÊý:
×÷Ϊ¸Õ½Ó´¥Ç°¶ËµÄ²»¾ÃµÄͯЬ£¬´ó¼Ò¶¼»áÐË·ÜÓÚCSSºÍJSËù´øÀ´Æ¯ÁÁ½çÃæ£¬È»¶ø£¬Ç°¶Ë¹¤³Ìʦ³ýÁËUIÖØ¹¹Í⣬»¹Óзdz£ÖØÒªµÄÖ°ÔðÔÚÕýÈ·µÄÇøÓòäÖȾ³ö·þÎñ¶ËµÄÊý¾Ý¡£±Ï¾¹£¬ÎÒÃÇÒª¹¹½¨Ò»¸ö´óµÄwebÓ¦Ó㬱ØÈ»²»ÊÇÆÕÆÕͨͨµÄ¾²Ì¬Ò³Ãæ¹¹³É¡£
ÏÂÎĽ«ÂÞÁн«À´Ç°¶Ë¹¤³ÌʦӦ¸Ã±Ø±¸µÄͬºó¶Ë´ò½»µÀµÄ³£Óü¼ÄÜ¡£
·þÎñ¶ËäÖȾ:
̸Æð·þÎñ¶ËäÖȾ£¬¶ÔÓÚ¶¯Ì¬·þÎñ¶øÑÔ£¬Õâ¸öÊÀ½çÉÏÅܵĴó¶àÊýÒ³Ãæ¶¼¾Àú¹ý·þÎñ¶ËµÄÊý¾ÝäÖȾ£¬½Ó¿Ú->ǰ¶Ë¸³Öµ->Ä£°æäÖȾ ¡£ÕâÒ»Çж¼ÔÚ·þÎñÆ÷Íê³É£¬ÎÒÃDz鿴ԴÂëʱºò£¬¿ÉÒÔ¿´µ½ÍêÕûµÄhtml´úÂ룬°üÀ¨Ã¿¸öÊý¾ÝÖµ¡£
³£ÓõÄphpÄ£°æÓУ¬Smarty,Blade,Mustache,Èç¹ûÄãÃÇÍŶÓʹÓÃSmarty£¬ÎÒÃÇ¿ÉÒÔ¿´µ½Ò»Ð©viewµÄÎļþÀï»áǰÌ×SmartyµÄÄ£°æÓïÑÔ;
¡¡¡¡
|
1
|
<font style="color:rgb(51, 51, 51)"><div> {foreach $list as $item} <h3>{$item['name']}</h3> <p>{$item['desc']}</p> {/foreach} </div></font> |
Èç¹ûNode,js×÷Ϊ·þÎñ¶ËµÄ»°£¬Õâ¸öʱºòÎÒÃÇ¿ÉÒÔʹÓÃǰ¶ËÄ£°æäÖȾµÄÄ£¿é£¬±ÈÈçejs,doT,jadeµÈµÈ¡£
×¢ÒⲻͬµÄÄ£°æ¿ÉÄÜ´æÔÚ²»Í¬Ä£°æÓï·¨£¬ÐèÒª×Ô¼ºÑ§Ï°Ê¹ÓÃ.
AJAX:
µ±È»·þÎñ¶ËäÖÈ¾Ëæ×ŵ¥Ò³Ó¦ÓÃÒÔ¼°Restful½Ó¿ÚµÄÐËÆð£¬AjaxÖð½¥³ÉΪĿǰǰºó¶Ë½»Á÷×îΪƵ·±µÄ·½Ê½¡£Ajaxʵ¼ÊºËÐÄÊÇ,ÎÒÃÇͨ¹ý¶Ô¸Ã¶ÔÏóµÄ²Ù×÷À´½øÐÐÒì²½µÄÊý¾ÝÇëÇó¡£
¡¡¡¡
|
1
|
<font style="color:rgb(51, 51, 51)">// Ò»°ãÁ÷³Ì[/color][/p]¡¡¡¡varoReq = new(); oReq.addEventListener( "load", function(res){ // your code to do something}); oReq.open( "GET", "http://www.example.org/example.txt"); oReq.send();</font> |
ʵ¼ÊÉÏÎÒÃǽӴ¥µ½×î¶àjQuey¾ÍÓкܺõķâ×°£¬±ÈÈç$.ajax£¬$.postµÈ£¬Èç¹ûÓÃAngularµÄ»°ÎÒÃÇ¿ÉÒÔÓÃ$http·þÎñ£¬³ýÁËÕâЩ֮Í⣬ÎÒÃÇ¿ÉÒÔʹÓõÚÈý·½µÄAjax¿âqwestµÈ¡£
Èç¹ûʹÓÃAjaxµÄ»°£¬ÎÒÃDz»µÃ²»ÃæÁÙһЩÎÊÌ⣬ÓÉÓÚͬԴÏÞÖÆµÄÎÊÌ⣬ÎÒÃDz»µÃ²»È¥¿Ë·þÕâ¸öÎÊÌ⣬Õâ¸öʱºòÎÒÃÇ¿ÉÒÔÒªÇó·þÎñ¶Ë£¬ÉèÖÃheaderÍ·£¬header('Access-Control-Allow-Origin: *');»òÕß½ÐÉèÖÃnginxÅäÖÃ.
¡¡¡¡
|
1
|
<font style="color:rgb(51, 51, 51)"><font style="color:rgb(51, 51, 51)">add_header 'Access-Control-Allow-Origin''http://yourweb.com'; add_header 'Access-Control-Allow-Credentials''true'; add_header 'Access-Control-Allow-Methods''GET';</font></font> |
µ±È»Õâ²»ÊÇ×îºÃµÄ×ö·¨£¬Êµ¼ÊÏÖÔÚÎÒÃÇÒ²¿ÉÒÔÕâô×ö:
ajax -> ´úÀí -> API
ÎÒÃÇ¿ÉÒÔÓÃphpµÄcurl»òÕßͨ¹ý·þÎñÆ÷µÄÅäÖÃÀ´ÊµÏÖ·´Ïò´úÀí¡£´Ó¶ø´ïµ½Í¬Ô´µÄЧ¹û¡£
ǰ¶Ë¹¤³Ìʦһ¶¨ÒªÒªÇóÿ´ÎÇëÇóµÄÊý¾Ý½Ó¿ÚÒ»Ñϸñ×ñÑ»ù´¡µÄÊý¾Ý½á¹¹ÒªÇ󣬾¡¹ÜjsÊÇÈõ±äÁ¿ÀàÐÍÓïÑÔ£¬µ«ÊÇÎÒÃÇ»¹ÊÇÓ¦¸ÃÑϸñÒªÇó£¬ÊÇÊý×飬¾Í²»Ó¦¸ÃÊǶÔÏó£¬ÊÇÊý×־Ͳ»Ó¦¸ÃÊÇ×Ö·û´®£¬ÕâÑù×öÓÐÀûÓÚ½µµÍÒþ²Øbug²¢ÇÒÌáÉýǰºó¶Ë¹¤×÷ЧÂÊ¡£
JSONP:
JSONPËã×÷JSONµÄÒ»ÖÖ"ʹÓÃģʽ"£¬¿ÉÓÃÓÚ½â¾öÖ÷Á÷ä¯ÀÀÆ÷µÄ¿çÓòÊý¾Ý·ÃÎʵÄÎÊÌâ¡£ÓÉÓÚCORSµÄÖ§³Ö£¬ÎÒÃÇ¿ÉÒÔ¼òµ¥µÄ½«Êý¾Ý·â×°³ÉÒ»¸öjs½Å±¾ÇëÇ󣬵±È»ÎÒÃÇÔÚjqueryÖлáÓõ½¡£
¡¡¡¡
|
1
|
<font style="color:rgb(51, 51, 51)"><font style="color:rgb(51, 51, 51)">functionlogResults(json){ console.log(json); } $.ajax({ url: "https://yourapi.com/api", dataType:"jsonp", jsonpCallback: "logResults"}); Comet</font></font> |
Comet:
ÁÄCometÎÒÃÇ»¹µÃ˵϶ÌÂÖѯ£¬ÓÉÓÚÄ³Ð©ÌØ¶¨µÄÒµÎñÐèÇ󣬱ÈÈç֪ͨ£¬ÎÒÃÇÐèÒªÓм°Ê±µÄÊý¾Ý¸üÐÂ,ÎÒÃÇÄܹ»Ïëµ½µÄ¾ÍÊÇʹÓÃsetIntervalÿ¸ôÒ»¶¨Ê±¼ä±ÈÈç10sÈ¥»ñȡһ´ÎÇëÇ󣬴Ӷø×öµ½Ò»Ð©Í¨Öª¸üУ¬µ«ÊÇÕâ²¢²»Ò»ÖÖ¸ßЧµÄ×ö·¨£¬Õâ»áÔö¼Ó·þÎñÆ÷µÄÇëÇóÊýÁ¿¡£Õâ¸öʱºòÓÐÁËÁíÍâÒ»ÖÖ¸ÅÄ“·´ÏòAjax”£¬ÓÉ·þÎñÆ÷½øÐÐÊý¾ÝÍÆËÍ£¬ CometÄܹ»ÈÃÐÅÏ¢½üºõʵʱµÄ±»ÍÆË͵½Ò³ÃæÉÏ£¬·Ç³£ÊʺÏÒªÇóʵʱÐԵĻñÈ¡µÄÊý¾ÝµÄÒ³Ãæ¡£
¡¡¡¡ ![]()
ÈçͼËùʾ£¬¾ÍÊÇÒ»¸ö¼òµ¥µÄCometÄ£ÐÍ£¬¾ÍÊÇÊý¾ÝÇëÇóºó¹ÒÆð£¬Ö±µ½ÓÐÊý¾ÝÏìÓ¦ÍÆË͵½¿Í»§¶Ë£¬Õâ¸öʱºò¿Í»§¶ËÔÙ·¢ÆðÒ»¸öеÄÁ¬½Ó¡£
¡¡¡¡
ÕâÑùÏà¶ÔÀ´Ëµ¿ÉÒÔ¼õÉÙÒ»¶¨ÊýÁ¿µÄÇëÇó£¬ÒÔ¼°Êý¾ÝµÄ¼°Ê±ÏìÓ¦£¬´Ó¶øÒ»¶¨ÒâÒåµÄʵÏÖËùÎ½ÍÆËÍ¡£
¡¡¡¡
Ò»¸ö¼òµ¥µÄPHP Demo´úÂ룬¾ÍÊÇÎÒÃÇÐèÒªÕâ¶Ë´úÂëÒ»Ö±ÔËÐÐ×Å...
¡¡¡¡while( true) { set_time_limit( 0); echo 'data'; flush(); b_flush(); sleep( 3); }
JavaScript:
¡¡¡¡
|
1
|
<font style="color:rgb(51, 51, 51)">[mw_shl_code=html,true]functioncreateStreamingClient(url,progress,finished){ varxhr= new(),received= 0; xhr.open("get",url, true); xhr.onreadystatechange= function(){ varresult; if(xhr.readyState== 3){ result=xhr.responseText.substring(received); received+=result.length; progress(result); }elseif(xhr.readyState== 4){ finished(xhr.responseText); } }; xhr.send( null); returnxhr; } // var client = createStreamingClient(url,fuc1,func2)</font> |
SSE Server-Sent Events:
SSEÊÇÎ§ÈÆÖ»¶ÁComet½»»¥ÍƳöµÄAPI»òÕßģʽ¡£SSE APIÓÃÓÚ´´½¨µ½·þÎñÆ÷µÄµ¥ÏòÁ¬½Ó£¬·þÎñÆ÷ͨ¹ýÕâ¸öÁ¬½Ó¿ÉÒÔ·¢ËÍÈÎÒâÊýÁ¿µÄÊý¾Ý¡£·þÎñÆ÷ÏìÓ¦µÄMIMEÀàÐͱØÐëÊÇtext/event-stream£¬¶øÇÒÊÇä¯ÀÀÆ÷ÖеÄJava APIÄܽâÎöµÄ¸ñʽÊä³ö¡£
¡¡¡¡ ![]()
ÏÖ¶ÔÓÚComet£¬ÎÒÃÇ¿ÉÒÔ¿´³öÎÒÃÇÖ»½øÐÐÁËÒ»´ÎÁ¬½Ó£¬È»ºó·þÎñ¶Ë»áÈ¥¿ØÖÆÊý¾ÝµÄÏìÓ¦£¬´Ó¶ø·¢Ë͸ø¿Í»§¶Ë¡£ÕâÑùÏà¶ÔÀ´Ëµ£¬µ«ÊÇÈçͬ¶¨ÒåµÄÃèÊö£¬ÕâÖÖÖ»ÊʺÏÖ»¶ÁÊý¾ÝµÄÇéÐΡ£±ÈÈçһЩ֪ͨºÍ״̬ÂëÕâÑùµÄ¡£SEEµÄʹÓ÷dz£¼òµ¥£¬Ö»ÐèÒªÕÆÎÕÕ⼸¸öapi¾ÍÐУº
¡¡¡¡
|
1
2
3
4
|
<font style="color:rgb(51, 51, 51)">vares = newEventSource( 'http://your.api.com'[/color][/p]¡¡¡¡functionlistener(event){ console.log(event.data); } // ´´½¨Ò»¸öSSEÁ¬½Ó¡¡¡¡es.addEventListener( "open", listener); // ÏìÓ¦»ñÈ¡ÏûÏ¢µÄʼþ¡¡¡¡es.addEventListener( "message", listener); // ·¢Éú´íÎó¡¡¡¡es.addEventListener( "error", listener);</font> |
×¢Ò⣺Èç¹ûÔڻػ°¹ý³ÌÖÐÓö¼û´íÎóºó£¬Ä¬ÈϳÌÐò»áÖØÐ·¢ÆðÒ»´ÎеÄÁ¬½Ó£¬´Ó¶ø·ÀÖ¹¹Òµô¾Í²»ÔÙÏìÓ¦ÁË
·þÎñ¶Ë£¨node,php£©µÄ´úÂ룬¿ÉÒԲο¼£ºhttps://github.com/Yaffle/EventSource
Web Sockets:
HTML5 WebSocket Éè¼Æ³öÀ´µÄÄ¿µÄ¾ÍÊÇҪȡ´úÂÖѯºÍ Comet ¼¼Êõ£¬Ê¹¿Í»§¶Ëä¯ÀÀÆ÷¾ß±¸Ïñ C/S ¼Ü¹¹ÏÂ×ÀÃæÏµÍ³µÄʵʱͨѶÄÜÁ¦¡£ ä¯ÀÀÆ÷ͨ¹ý Java Ïò·þÎñÆ÷·¢³ö½¨Á¢ WebSocket Á¬½ÓµÄÇëÇó£¬Á¬½Ó½¨Á¢ÒԺ󣬿ͻ§¶ËºÍ·þÎñÆ÷¶Ë¾Í¿ÉÒÔͨ¹ý TCP Á¬½ÓÖ±½Ó½»»»Êý¾Ý¡£Ò²¾ÍÊÇÎÒÃÇ¿ÉÒÔʹÓÃweb¼¼Êõ¹¹½¨ÊµÊ±ÐԵijÌÐò±ÈÈçÁÄÌìÓÎÏ·µÈÓ¦Óá£
ÆäʵWeb Sockets µÄAPIºÜÉÙ£¬¾ÍÏÂÃæÕâЩ:
¡¡
|
1
2
3
4
5
6
|
<font style="color:rgb(51, 51, 51)">¡¡websocket = newWebSocket( "ws://your.socket.com:9001"); // ´ó¿ª[/color][/p]¡¡¡¡websocket.onopen = function(evt){ /* do stuff */}; //on open event // µ±web socket¹Ø±Õ¡¡¡¡websocket.onclose = function(evt){ /* do stuff */}; // ½øÐÐͨÐÅʱ¡¡¡¡websocket.onmessage = function(evt){ /* do stuff */}; // ·¢Éú´íÎóʱ¡¡¡¡websocket. = function(evt){ /* do stuff */}; // Ïò·þÎñÆ÷·¢·¢ËÍÏûÏ¢¡¡¡¡websocket.send(message); //send method¡¡¡¡websocket.close(); //close method</font> |
¶ÔÓÚ·þÎñ¶ËµÄ»°£¬PHPÖ§³ÖÁ˺ܶàsocket Ïà¹Øapi£¬µ«ÊÇÎÒÃÇ¿ÉÒÔʹÓøü¼Ó³ÉÊìµÄ¿ò¼Ü£¨ÊµÓ㩱ÈÈçphpsocket.io£¬Ratchet.µ±È»node.jsд socketÒ²·Ç³£µÃÐÄÓ¦ÊÖ£¬node.js¶Ô¸ß²¢·¢Ö§³ÖÏà¶Ô½ÏºÃ£¬¿ÉÒÔʹÓÃhttp://socket.io/¡£
·þÎñ¶Ë´ó¸Å»á×öÏÂÃæµÄÊÂÇé: + ´´½¨Ò»¸ösocket + °ó¶¨µØÖ·ºÍ¶Ë¿Ú + ¼àÌý½øÈëµÄÁ¬½Ó + ½ÓÊÕеÄÁ¬½Ó + web socket ÎÕÊÖ + ½âÂëÊý¾Ý
С½á:
˵ÁËÄÇô¶à¼òµ¥×ܽáÏ£¬´ó¼ÒÏëÃ÷°×¼¸µã¾ÍÐÐÁË£¬¿Í»§¶ËÓë·þÎñ¶ËËÏÈÖ÷¶¯£¬ÊÇ·ñÇ¿µ÷Êý¾ÝµÄʵʱÐÔ¡£
webǰ¶Ë¿ª·¢Åàѵ֮js »ù±¾ÀàÐÍÓëÒýÓÃÀàÐ͵ÄÇø±ð
2016-10-13webǰ¶Ë¿ª·¢Åàѵ֮JSÖÐtoFixedËÄÉáÎåÈëµÄ¿Ó
2016-10-13webǰ¶Ë¿ª·¢Åàѵ֮ÈçºÎʵÏÖµã¶ÔµãËæ»úÆ¥ÅäÁÄÌì
2016-10-13webǰ¶Ë¿ª·¢Åàѵ֮Webǰ¶ËÐÔÄÜÓÅ»¯µÄ9´óÎÊÌâ
2016-10-13webǰ¶Ë¿ª·¢Åàѵ֮zeptoºÍjqueryµÄÇø±ð£¬zeptoµÄ²»Í¬Ê¹ÓÃС½á
2016-10-13webǰ¶Ë¿ª·¢Åàѵ֮CSS3ͼƬµ¹Ó°¼¼Êõ
2016-10-13
±±¾©Ð£Çø