同乙個瀏覽器多次請求竟然發現是序列執行的,見鬼了。

2022-09-22 06:21:11 字數 722 閱讀 6731

今天在對乙個執行時間比較長方法做下控制,本想是多次請求訪問的時候,同時只有乙個在執行這個耗時的方法,其他請求能夠直接返回當前狀態。如下:

//觸發一次賬號同步

func syncnow(c *gin.context) )

} else )

} } else )

}}

結果發現,在同個瀏覽器上訪問,多個請求都在排隊執行,不會立馬返回,真的見鬼了,我還以為gin的controller方法是單例的,但是感覺也不像,但是網上沒找到相關的資料。

後來在csdn上發現了這篇文章springboot的controller為什麼不能並行執行?同乙個瀏覽器連續多次訪問同乙個url竟然是序列的?

對,是chrome瀏覽器或使用了相同核心的瀏覽器引起的。

谷歌瀏覽器同時只能對同乙個url發起乙個請求,如果有更多的請求的話,則會序列執行。如果請求阻塞,後續相同請求也會阻塞。

chrome的限制規則是:瀏覽器同時只能對同乙個url提出乙個請求,如果有更多的請求的話,對不起,請排隊。這個所謂「限制」到底好不好?可能不錯,想想對同一url的請求,如果前請求阻塞,那麼後請求想必也會被阻塞,這無端增加了開銷,並沒多大意義,chrome這麼做應該有它的合理性。

為此為了驗證這個上面這段話,我們可以找到這麼一篇文章:http cache:implement a timeout for the cache lock.

同乙個屬性如何相容各種瀏覽器

背景 css在chrome下執行無誤,上線後,發現不相容低版本的ie.測試條件 chrome firefox 360ie 文件模式為7 qq 搜狗瀏覽器 遇到的問題 產品數量增減按鈕在chrome下顯示如下,但是在firefox和360中都顯示 部件分離 狀 修改css,調整整個部件 加減號和inp...

避免同乙個檔案被include多次

我們知道c 有時會遇到防止標頭檔案重複include問題,常用的方式可以防止.h檔案重複include 的方式為 if defined.define.但是在有些地方發現了這段 if msc ver 1000 pragma once endif msc ver 1000 查了一下也是防止重複inclu...

避免同乙個檔案被include多次

1 ifndef方式 2 pragma once方式 在能夠支援這兩種方式的編譯器上,二者並沒有太大的區別,但是兩者仍然還是有一些細微的區別。方式一 ifndef somefile h define somefile h 一些宣告語句 endif 方式二 pragma once 一些宣告語句 ifn...