欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談window.onbeforeunload() 事件調(diào)用ajax

 更新時間:2016年06月29日 09:10:57   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談window.onbeforeunload() 事件調(diào)用ajax。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

經(jīng)常有這樣的需求,就是在離開某個web頁面時,用戶不一定點注銷,這樣會導(dǎo)致會話不能及時銷毀。為實現(xiàn)用戶離開頁面時,自動注銷功能,需要在web頁面的onbeforeunload事件處理函數(shù)中發(fā)送注銷命令。這個地方大多用Ajax實現(xiàn)。有時還涉及到跨域訪問的問題。這個地方就存在瀏覽器的兼容性問題。

瀏覽器在處理這個需求時的不兼容性有如下兩點:

1、處理Ajax時的不兼容性,這里使用jQuery來解決。

2、在發(fā)送Ajax請求時的不兼容性

主要代碼如下:

function logout() { 
        var logoutURL = "xxxx"; //用于注銷用戶的url 
        if (logoutURL == "") return; 
        var userAgent = navigator.userAgent.toLowerCase(); 
        if(userAgent.indexOf("msie")>-1) { //IE 
          $.ajax({ url: logoutURL, crossDomain: true, async: false, dataType: "jsonp" }); 
        }else { //FireFox Chrome 
          $.ajax({ url: logoutURL, async: false }); 
        } 
      } 
 
      window.onbeforeunload = function () { 
        logout(); 
      }; 

代碼說明:

firefox在處理js時的安全級別較高,很多IE、Chrome中js可以使用的權(quán)限在Friefox中被限制,因此通過

if(userAgent.indexOf("msie")>-1) { //IE
          
        }else { //FireFox Chrome
          
        }

這段代碼來判斷當(dāng)前瀏覽器類型。

針對Firefox、Chrome的兼容代碼如下:

$.ajax({ url: logoutURL, async: false });

async需要設(shè)為false,即為同步,不能采用true異步的方式,否則請求有可能發(fā)不出去。其實Chrome也適用于下面針對IE的代碼,在關(guān)掉瀏覽器時會自動發(fā)送注銷命令,但是點瀏覽器的刷新按鈕時也希望能自動注銷用戶時,Chrome就只能采用上面這行代碼才能發(fā)出注銷請求

針對IE的兼容代碼如下:

$.ajax({ url: logoutURL, crossDomain: true, async: false, dataType: "jsonp" });

crossDomain設(shè)置為true是為了解決跨域訪問問題,如果不存在這個問題,這個屬性可以忽略。async屬性最好也設(shè)成false,true也可以。dataType:"jsonp"這個屬性也是為解決跨域訪問問題,和crossDomain配合使用,不存在跨域問題,這兩個屬性可省略。

以上代碼在IE9、Chrome27、Firefox21測試通過。

以上就是小編為大家?guī)淼臏\談window.onbeforeunload() 事件調(diào)用ajax(標(biāo)題)全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • jquery選擇器使用詳解

    jquery選擇器使用詳解

    JQuery是一個很NB的js集成作品,以其簡潔的語法和跨平臺兼容性的優(yōu)勢,這里給大家介紹下JQuery中的選擇器,不理解選擇器或者用不好選擇器,是不可能有一手很NB的JQuery技能的
    2014-04-04
  • jquery 正整數(shù)數(shù)字校驗正則表達(dá)式

    jquery 正整數(shù)數(shù)字校驗正則表達(dá)式

    本文主要介紹了jquery正整數(shù)數(shù)字校驗正則表達(dá)式的方法。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • jQuery插件ajaxFileUpload使用詳解

    jQuery插件ajaxFileUpload使用詳解

    這篇文章主要為大家詳細(xì)介紹了jQuery插件ajaxFileUpload使用教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • jquery實現(xiàn)心算練習(xí)代碼

    jquery實現(xiàn)心算練習(xí)代碼

    實現(xiàn)代碼的過程中,有兩個問題很棘手,一個是開始按鈕連續(xù)單擊,計時時間會迅速加快;二是如何判定玩家單擊哪個按鈕。
    2010-12-12
  • jQuery插件HighCharts繪制2D帶Label的折線圖效果示例【附demo源碼下載】

    jQuery插件HighCharts繪制2D帶Label的折線圖效果示例【附demo源碼下載】

    這篇文章主要介紹了jQuery插件HighCharts繪制2D帶Label的折線圖效果,結(jié)合實例形式分析了jQuery圖形繪制插件HighCharts實現(xiàn)折線圖效果的具體操作步驟與相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下
    2017-03-03
  • jQuery實現(xiàn)簡單的輪播圖

    jQuery實現(xiàn)簡單的輪播圖

    這篇文章主要為大家詳細(xì)介紹了jQuery實現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • jQueryMobile之Helloworld與頁面切換的方法

    jQueryMobile之Helloworld與頁面切換的方法

    這篇文章主要介紹了jQueryMobile之Helloworld與頁面切換的方法,實例分析了jQueryMobile的基礎(chǔ)用法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • jquery實現(xiàn)放大鏡簡潔代碼(推薦)

    jquery實現(xiàn)放大鏡簡潔代碼(推薦)

    這篇文章主要介紹了jquery實現(xiàn)放大鏡簡潔代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • jQuery提示插件alertify使用指南

    jQuery提示插件alertify使用指南

    alertifyjs是一個非侵入式,可定制的JavaScript通知組件。包括可定制的對話框,和右下角消息彈出框。完全可定制的警報,確認(rèn)和提示對話框、完全自定義的通知系統(tǒng)、回調(diào)參數(shù)處理包括“確定“和”取消“按鈕的點擊、允許對話框排隊
    2015-04-04
  • jquery validation插件表單驗證的一個例子

    jquery validation插件表單驗證的一個例子

    jquery.validate.js validation表單的驗證插件
    2010-03-03

最新評論