起因:在工作中經常會發現瀏覽器請求過多,會很慢很卡,但我並不知道並發請求個數,
於是就寫個例子,探知瀏覽器並發請求的個數。
思路:1.新建網站。
2.添加兩個按鈕,分別添加點擊事件,請求不同接口。
3.服務端添加內容,打印當前時間的日志,並使進程sleep 10秒。
4.分別點擊按鈕,查看日志時間連續記錄有幾條,即為並發請求個數,間隔時間長的打印,即為下次排隊執行的請求。
html部分:
添加兩個
<body> <input id="Button1" type="button" value="button" onclick="f_click()" /> <input id="Button2" type="button" value="button" onclick="f_click2()" /> </body>
Javascript部分:
<script type="text/javascript"> //第一個請求方法 function f_click() { $.ajax({ type: 'post', url: 'Handler.ashx', success: function (result) { alert('1'); } }); } //第二個按鈕請求方法 function f_click2() { $.ajax({ type: 'post', url: 'Handler2.ashx', success: function (result) { alert('2'); } }); } </script>
服務端代碼:
public class Handler : IHttpHandler { private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; log.Debug("接口1 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); System.Threading.Thread.Sleep(10000); } public bool IsReusable { get { return false; } } }
測試步驟:
同一瀏覽器下:
1.在同一域名下,同一頁面,點擊兩個按鈕,調用不同接口,查看日志。
2.在同一域名,不同頁面,調用同一接口,查看日志。
3.在不同域名,分別調用不同接口,
(本次試驗chrome4 )
發現,每6個請求打印的時間是連續的。同理舉例,控制變量,測試瀏覽器並發請求個數。
結論:
瀏覽器的並發請求數目限制是針對同一域名的。即一時間針對同一域名下的請求有一定數量限制。超過限制數目的請求會被阻塞。
附下圖(圖片來之知乎):
版權聲明:本文為博主原創文章,轉載請注明出處。http://www.cnblogs.com/SweetMemory/p/6340919.html