2009-04-17 73 views
0

我正在寫我自己的web服務器,我還沒有正確處理併發連接。由於不恰當地處理併發連接,我得到了大量的頁面加載滯後(我對SYN做出了響應,但我以某種方式丟失了GET數據包,瀏覽器在一段時間後重試,但需要3秒!)我試圖弄清楚是否有指導瀏覽器停止同時加載事件的方式,因爲調試需要很長時間。網絡服務器非常精簡,不會公開,也不是這個應用程序的主要目的,這就是爲什麼我願意以這種方式偷工減料。限制服務器端的併發連接數量?

只需將併發連接限制爲1即可,因爲使用註冊表黑客程序修改該參數以及使用about:config for Firefox都可以使事情完美。

任何其他解決方法的想法也是有用的。我可以想到的一對夫婦:

1 - 指示瀏覽器緩存沒有到期的所有內容,以便緩慢加載(.js,.css和圖像文件)只發生一次。我可以在文件末尾添加一個校驗和(img src =「/ img/blah.png?12345678」),以確保我是否更新文件,並且正確重新加載。

2 - 添加.js和.css以加載與.html文件內聯 - 但這仍然不能解決圖像問題,無論如何這只是簡單的醜陋。

+0

您是否嘗試增加收聽積壓? – 2009-04-17 19:53:33

回答

0

所以我從來沒有找到一種方法來做到這一點。

我的根本問題是太多的請求進入,並溢出我有限的接收緩衝區在emac內存中。溢出接收緩衝區=丟棄的數據包。解決方案是將所有.js和所有.css文件合併到1 .js和1 .css文件中,以便取消我的請求。我將所有圖片,js和css頁面設置爲一年到期。 html頁面被設置爲立即過期。我寫了一個perl腳本來將md5校驗和附加到文件中,以便更改文件。現在效果很好。第一次加載緩存所有內容後,頁面立即加載。

0

我不相信有可能告訴像Firefox這樣的瀏覽器不能同時加載,至少不會通過某個http頭或其他東西來加載用戶。

相關問題