關閉頁面時window.location事件未執行的原因分析及解決方案,window.location

來源:互聯網
上載者:User

關閉頁面時window.location事件未執行的原因分析及解決方案,window.location

1、問題描述:

  JS中定義widow.location = function(),頁面關閉時,logout()函數未執行。 

window.onunload = function() {    logout();  }function logout(reqParam, callback){    var userManageServiceUrl = "http://" + getServerAddr() + "/axis2/services/UserManageService";    var urlList = [];    var url = window.location.href;    urlList = url.split("?");    var sessionID = urlList[1];    reqParam.sessionID = sessionID;    var pl = new SOAPClientParameters();    var reqParamStr = JSON.stringify(reqParam);    pl.add("reqParam", reqParamStr);    SOAPClient.invoke(userManageServiceUrl, "logout", pl, false, callback);  }

2、問題原因:

  logout()中調用SOAPClient.invoke()方法,參數為true,代表前端和server是非同步方式通訊,即前端還未接收到server端的響應,便已經執行後面的語句了,在該問題中表現為前端執行logout()時還未等到server的響應,便已經將頁面關閉了,所以表現為logout()未執行。

3、解決方案:

  將前端和server通訊方式改為同步,即將SOAPClient.invoke()方法中true改為false,問題得到解決。


js中windowlocation不執行什原因?

1——
判斷是否你的系統是否禁止了JS的運行

2——
檢查這個代碼是否有執行的可能

3——
檢查這代碼之前是否有錯誤。 答案補充 給你個檢查的方案:

把 window.location = '...' 修改為3行: 答案補充 按快了,鬱悶。

修改為:

alert("before window.location set");
window.location='...';
alert("after window.location set");

這個是我通常檢測javascript的方法,如果第一個alert沒有調用,那麼你把它一直往前移動,直到第一個調用為止,然後確定錯誤並修正。

此外,如果你給window.location設定的值是當前頁面的地址,這個改變是無效的(因為只有location改變才會執行,而你設定的值沒有改變,所以不會執行)。

如果要對當前頁面重新整理,好象location有個refresh函數 或者類似的(具體的函數或所在對象忘記了)。 答案補充 檢查你的 location 拼字

使用:

alert(window.location)

顯示的資訊應該是當前的url地址。
 
js中windowlocation不執行什原因?

那你試一下:
window.location.herf="";
試一下能否執行,再不然直接用Navgate導航到某個頁面上去!
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.