我正在使用手機開發Android應用程序。一切工作正常請求/響應,現在我必須處理的情況下,當沒有3G網絡可用和wifi被禁用,在這種情況下,我的jquery ajax()請求不會做任何事情,它甚至不會來錯誤處理程序。我已經放了10秒的超時時間。當在Android上禁用網絡和WiFi時處理ajax請求
有人能告訴我ajax請求出了什麼問題嗎?爲什麼錯誤處理程序沒有調用?
感謝
我正在使用手機開發Android應用程序。一切工作正常請求/響應,現在我必須處理的情況下,當沒有3G網絡可用和wifi被禁用,在這種情況下,我的jquery ajax()請求不會做任何事情,它甚至不會來錯誤處理程序。我已經放了10秒的超時時間。當在Android上禁用網絡和WiFi時處理ajax請求
有人能告訴我ajax請求出了什麼問題嗎?爲什麼錯誤處理程序沒有調用?
感謝
使用PhoneGap的Network API來測試設備上網絡連接的當前狀態。下面是從上面鏈接的文檔頁面中獲取的示例:
function reachableCallback(reachability) {
// There is no consistency on the format of reachability
var networkState = reachability.code || reachability;
var states = {};
states[NetworkStatus.NOT_REACHABLE] = 'No network connection';
states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
alert('Connection type: ' + states[networkState]);
}
navigator.network.isReachable('phonegap.com', reachableCallback);
希望幫助!
你總是可以做一個測試事前,調用$(document).ready()
之前,並設置一個變量設置爲false:
var is_online = false;
if (navigator.onLine(connected)) {
is_online = true;
}
然後你就可以測試你的$.ajax()
請求變量。
這是一個很好的答案,但根據我的經驗,navigator.onLine屬性在加載頁面後不會更新。因此,如果用戶的連接在加載應用程序後發生變化,您可能不知道。 – 2011-02-16 19:37:52
如果您等待很長時間(> 120秒)錯誤處理程序被調用? – 2011-02-16 09:11:03
沒有任何反應,超時值不管它是0還是120或更高。 – Bhupi 2011-02-16 09:19:51