原文出自 https://www.oschina.net/question/1172551_218058
當然,微信掃碼登錄使用的是基於事件驅動的反向ajax,騰訊不會傻到使用輪詢的,輪詢,有時間片差,體驗不夠好,而且對服務器負載造成很大浪費。通過對微信的web頁面數據分析,應該能發現,在沒有任何操作的時候,web微信維持了一個27秒的request,也就是它採用的是http long polling。
整個流程的通信過程看圖:
具體實現可以參考:http://www.cnblogs.com/fengyun99/p/3541249.html
目前可以實現反向ajax的方式有如下幾個例子可供參考:
反向 Ajax,第 1 部分: Comet 簡介
http://www.ibm.com/developerworks/cn/web/wa-reverseajax1/
反向 Ajax,第 2 部分: WebSockets
http://www.ibm.com/developerworks/cn/web/wa-reverseajax2/反向 Ajax,第 3 部分: Web 服務器和 Socket.IO
http://www.ibm.com/developerworks/cn/web/wa-reverseajax3/
反向 Ajax,第 4 部分: Atmosphere 和 CometD
http://www.ibm.com/developerworks/cn/web/wa-reverseajax4/
反向 Ajax,第 5 部分: 事件驅動的 Web 開發