摘要:同步這種需求主要用于當瀏覽器關閉,或者刷新時,向后端發起請求。使用參數使請求同步默認是異步的。如果請求是異步的,頁面只是繼續卸載。它足夠快,以至于該請求甚至沒有時間觸發。服務端很可能收不到請求。其中和不支持該技術。
1 同步Ajax
這種需求主要用于當瀏覽器關閉,或者刷新時,向后端發起Ajax請求。
window.onunload = function(){ $.ajax({url:"http://localhost:8888/test.php?", async:false}); };
使用async:false參數使請求同步(默認是異步的)。
同步請求鎖定瀏覽器,直到完成。 如果請求是異步的,頁面只是繼續卸載。 它足夠快,以至于該請求甚至沒有時間觸發。服務端很可能收不到請求。
2 navigator.sendBeacon優點:簡潔、異步、非阻塞
缺點:這是實驗性的技術,并非所有瀏覽器都支持。其中IE和safari不支持該技術。
示例:
window.addEventListener("unload", logData, false); function logData() { navigator.sendBeacon("/log", analyticsData); }
參考:http://stackoverflow.com/ques...
參考:https://developer.mozilla.org...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/81049.html
摘要:坑無視和是十分特殊的事件,要求事件處理函數內部不能阻塞當前線程,而卻恰恰就會阻塞當前線程,因此規范中以明確在和中直接無視這幾個方法的調用。 前言 ?最近實施的同事報障,說用戶審批流程后直接關閉瀏覽器,操作十余次后系統就報用戶會話數超過上限,咨詢4A同事后得知登陸后需要顯式調用登出API才能清理4A端,否則必然會超出會話上限。?即使在頁面上增添一個登出按鈕也無法保證用戶不會直接關掉瀏覽器...
摘要:回過頭來發現,我們的項目,雖然在服務端層面做好了日志和性能統計,但在前端對異常的監控和性能的統計。對于前端的性能與異常上報的可行性探索是有必要的。這是我們頁面加載性能優化需求中主要上報的相關信息。 概述 對于后臺開發來說,記錄日志是一種非常常見的開發習慣,通常我們會使用try...catch代碼塊來主動捕獲錯誤、對于每次接口調用,也會記錄下每次接口調用的時間消耗,以便我們監控服務器接口...
摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...
摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...
摘要:這種情況通常發生在反向代理的時候,前端發起請求代理服務器,代理服務器發起請求到,這時候就容易導致域名不一致,請一定要注意這點。 寫在最前 前后端分離其實有兩類: 開發階段使用dev-server,生產階段是打包成靜態文件整個放入后端項目中。 開發階段使用dev-server,生產階段是打包成靜態文件放入單獨的靜態資源服務器中,如nginx。 這兩種方案最大的區別就是生產階段。由于第...
閱讀 3179·2023-04-25 19:09
閱讀 3888·2021-10-22 09:54
閱讀 1765·2021-09-29 09:35
閱讀 2920·2021-09-08 09:45
閱讀 2267·2021-09-06 15:00
閱讀 2775·2019-08-29 15:32
閱讀 1042·2019-08-28 18:30
閱讀 380·2019-08-26 13:43