<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 瀏覽器訪問阻塞問題 test.php ```php <?php function test2() { $amount = 0; $i = 3; while ($i > 0) { echo $i . ' - ' . date('Y-m-d H:i:s') . '<br />'; ob_flush(); flush(); $i--; sleep(1); } echo "我出來了<br />"; ob_flush(); flush(); } test2(); ``` 瀏覽器開兩個標簽訪問: 標簽1 http://127.0.0.1/test2.php ~~~ 3 - 2017-06-19 05:33:22 2 - 2017-06-19 05:33:23 1 - 2017-06-19 05:33:24 我出來了 ~~~ 標簽2 http://127.0.0.1/test2.php ~~~ 3 - 2017-06-19 05:33:25 2 - 2017-06-19 05:33:26 1 - 2017-06-19 05:33:27 我出來了 ~~~ 可以看到竟然出現阻塞了,竟然有“并發鎖”的效果了,可是我們代碼并沒有考慮并發的代碼啊,按道理說應該是錯亂的啊,這是怎么回事呢,是了360安全瀏覽器、火狐瀏覽器、谷歌瀏覽器,都是這樣的,但是在不同瀏覽器上面就是正常的,錯亂的有并發問題,于是要懷疑瀏覽器了,果不其然,把標簽2的地址變為 http://127.0.0.1/test2.php?2 就錯亂了: 標簽1: ~~~ 3 - 2017-06-19 05:36:25 2 - 2017-06-19 05:36:26 1 - 2017-06-19 05:36:27 我出來了 ~~~ 標簽2 ~~~ 3 - 2017-06-19 05:36:23 2 - 2017-06-19 05:36:24 1 - 2017-06-19 05:36:25 我出來了 ~~~ 幾個瀏覽器上也都是這樣的,原來是瀏覽器搞的鬼。 于是我們得出結論: **瀏覽器在開多個標簽頁訪問同一個url地址時,標簽之間是阻塞的。** 于是我們想看看在這種情況下,瀏覽器的網絡請求是什么情況: 果然和我們想的一樣,第一個標簽訪問時,還沒有結束時,第二個標簽的 Status的狀態為:`pending` * * * * * 這個問題干擾了我們的測試,知道了原因后就好辦了,第二個標簽加個不一樣的參數就好了。 在研究PHP并發鎖的時候遇到這個問題,百思不得姐,通過一番實驗發現了這個問題, 于是把這個瀏覽器的小細節記錄下來。 ### 擴展 如果在登錄環境中是無法順利做上面的實驗的哦,因為在同一瀏覽器上面登錄時,session多頁面文件阻塞問題。參考:[PHP中Session引起的腳本阻塞問題解決辦法](http://www.jb51.net/article/48805.htm) thinkphp中想要提升性能在使用完session后需要及時的執行: ```php // 及時暫停session,釋放session文件,可以避免發生多頁面session阻塞問題 // 不這樣做的話,對于用戶來說,統一發起的多個請求,如果其中一個請求相應慢也會影響其他請求 // 最好不使用文件儲存session,使用其他無鎖的緩存,不過沒有鎖的話,還有面對兩次會話可能出現的數據不一致和并發修改數據的問題 Session::pause(); ``` 這樣多頁面訪問時就會感覺到顯著的速度提升。 last update:2017-6-19 14:24:52
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看