創建通知服務的最佳做法是什麼,例如在Facebook網站中。我發現定期發送http請求以檢查服務器上是否有更新是很不錯的。創建通知服務(如Facebook網站)的最佳做法是什麼?
回答
您可以使用WebSocket API作爲真正的推送服務(而不是ajax輪詢)。但它是HTML5的一部分,目前不受所有瀏覽器和Web服務器的支持。
這是調用長輪詢(AJAX的類型)。
我會試着描述一下你使用PHP和JS的情況,就像Facebook一樣。
- 您發送一個AJAX請求到服務器。
- 無限循環開始在服務器端
<?php
$seconds = 0;
while(true) {
if ($seconds >= 55) {
die("no_notifications");
}
if (false !== ($notifications_json = getNotifications()) {
echo $notifications_json;
die();
}
$seconds++;
sleep($TIME_TO_WAIT_BEFORE_NEXT_CHECK); //this number should be based on your performance
}
?>
- 當有新的通知,腳本模具() S和響應由JavaScript
- 新的請求被髮送到處理服務器,再次,等待新的通知
隨着JA vascript(我會告訴你用jQuery的例子),你可以使用像
$(function() {
pollForNotifications();
});
function pollForNotifications() {
$.get("/notifications", function(response) {
if (response != "no_notifications") {
alert("You've got one new notification!");
//more proccessing here
}
pollForNotifications();
});
}
請記住,有在特定瀏覽器的時間限制來完成請求!即使您沒有任何通知,但在一段時間(55秒)之後,您應該輸入die()
以防止出現問題(此預防包含在上面的腳本中)!
當我需要發送請求? – Bader 2012-02-25 21:34:12
@AdhamEnaya:一旦在頁面加載(或當你需要啓動的通知輪詢)和腳本死後(當用戶獲取請求) – 2012-02-25 21:35:55
@AdhamEnaya:添加一個jQuery例子,使其更容易爲你 – 2012-02-25 21:38:45
你可能想看看Pusher。它會處理推送通知並支持許多瀏覽器。
- 1. 創建服務請求參考號碼的最佳做法是什麼?
- 2. 在Android中創建服務的最佳方法是什麼?
- 3. 保護網站管理部分的最佳做法是什麼?
- 4. 最佳做法是什麼?
- 5. 在Static ASP.NET網站中實施網站搜索的最佳做法是什麼?
- 6. Grails創建服務是做什麼的?
- 7. 設計SOA WCF Web服務時的最佳做法是什麼?
- 8. 圖像服務的最佳做法是什麼?
- 9. 什麼是在Android項目中創建包的最佳做法
- 10. 創建數百個對象的最佳做法是什麼?
- 11. 創建統一菜單的最佳做法是什麼?
- 12. 創建自定義例外的最佳做法是什麼?
- 13. 創建Spring搜索表單的最佳做法是什麼?
- 14. 創建AJAX導航的最佳做法是什麼?
- 15. 創建自動生成ID的最佳做法是什麼
- 16. 創建邀請碼的最佳做法是什麼?
- 17. 什麼是創建移動網站和桌面網站的最佳方式?
- 18. 通知客戶有關新創建的itemId的最佳做法
- 19. 什麼是SSIS包的最佳網站
- 20. 創建移動Web服務API的最佳方式是什麼?
- 21. 什麼是創建一個完整的Flash網站的最佳方法
- 22. 會員網站的網頁設計最佳做法是什麼? blah.com/username?
- 23. 通過實時驗證創建Ember表單的最佳做法是什麼?
- 24. 服務器通信的最佳方法是什麼?
- 25. log4cxx的最佳做法是什麼?
- 26. 什麼是ViewModel的最佳做法
- 27. 爲php網站做網站翻譯文件的最佳方式是什麼?
- 28. 將網站服務嵌入其他網站的最佳方法
- 29. 沙盒網站的最佳做法?
- 30. ping /通知.NET Windows服務的最簡單方法是什麼?
您使用哪種服務器端語言? – 2012-02-25 21:26:56
@Martin它的php – Bader 2012-02-25 21:31:05