2015-06-20 38 views
5

我有一個HTML5網絡應用程序的問題,我每兩秒鐘通過ajax查詢重複數據更新。前兩個或三個在175毫秒的時間內完成,但是在此之後,他們從那時開始減速到500毫秒。託管公司發誓,這不是他們。我做了一個簡單的測試 - 請參閱下面的測試腳本。這不是我的應用程序,因爲此測試腳本具有相同的結果。我的問題是:這是託管服務遏制認爲這是一個DDoS攻擊,或者有什麼我可以做的,以阻止這種限制,並放慢Ajax查詢?爲什麼Web服務器會限制ajax查詢--DDoS?

索引文件:

<!DOCTYPE html> 
<html> 
<head> 
<script src="jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
     var count = 0; 
     var my_timer = setInterval(function(){ 
      $.ajax({url: "test.php", success: function(result){ 
       $("#div1").html(result); 
      }}); 
      count = count + 1; 
      if(count == 10) clearInterval(my_timer); 
     },2000); 
    }); 
}); 
</script> 
</head> 
<body> 
<div id="div1">Let jQuery AJAX Change This Text</div> 
<br> 
<button>Get External Content</button> 
</body> 
</html> 

PHP文件:

<?php 
    echo date('h:i:s'); 
?> 
+0

大多數Web瀏覽器對併發請求的數量都會對同一站點運行的數量產生限制......每兩秒鐘頻繁出現一次,特別是如果它們需要一段時間來處理,最終可能會排隊通過瀏覽器 - 螢火蟲或鉻開發工具等工具會告訴你這個 –

+0

你如何衡量「經歷」時間?我已經添加了[一些時機](http://stackoverflow.com/a/6341813/3340665)到JavaScript(從間隔函數的第一行開始,在成功處理程序中測量)並在我的服務器上測試腳本,但是它的平均在40ms。 (使用當前的Chrome進行測試。) – GhostGambler

+0

那麼它們不是併發的,它們是串行的。同樣在測試腳本中,一行數據命令並不是很重。這個應用程序適用於我的另一個託管服務。這就是我針對託管公司的原因。但有沒有解決辦法? –

回答

1

[解決]很多研究這個問題後。我想我終於明白了,或者至少找到了解決辦法。顯然CentOS和/或Plesk Php被阻止。他們解決問題的方式是在openSUSE 13.1上重新映像服務器。有了這個操作系統,Ajax查詢似乎可以正常工作。這只是一個猜測,但它看起來像PHP和/或CentOS軟件更新機制也存在錯誤。更新似乎無法正常工作併產生問題。所以現在我不會解決沒有被破壞的東西。

感謝您對評論員提出的意見,因爲它確實指向了正確的方向。

相關問題