1
在我的智慧在這裏結束。AJAX jQuery凍結IE/Safari
進出口運行此腳本
<script type="text/javascript" charset="utf-8">
jQuery(window).ready(function(){
//alert('running');
var sold = false;
var leads = [
["one", 120],
["two", 0]
];
jQuery.each(leads, function(index, value) {
var _data = "";
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?lead=" + value[0],
dataType: "json",
//contentType: "application/json; charset=utf-8",
timeout: value[1] * 1000, //Yes i need to wait 120 seconds for "one"
async: false,
cache: false
}).success(function(data) {
_data = data;
console.log(data.status + " Lead: "+ value[0]);
if (data.status == "sold") {
sold = true;
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
dataType: "json",
//contentType: "application/json; charset=utf-8",
async: false,
cache: false
}).success(function() {
//Silence is golden.
});
window.location.href = data.link;
}
}).error(function(jqXHR, textStatus){
console.log("ERROR: " + textStatus + " Lead: " + value[0]);
});
if (_data.status == "sold") {
return false;
}
});
if (!sold) {
//If we get here, None of the leads were sold.
jQuery.ajax({
url: "/wp-content/plugins/cUrl/submit_lead.php?resetSession",
//contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
cache: false
}).success(function(data) {
//Silence is golden.
});
window.location.href = '/thank-you.php';
}
});
</script>
腳本需要一些信息並將其提交到submit_lead.php將返回一個狀態,消息和鏈接的JSON響應。一旦它有這個鏈接,它需要調用與resetSession相同的腳本,並將用戶重定向到收到的鏈接。
我關閉了一個同步功能,因爲我需要等到我嘗試「two」之前收到「one」響應,因爲如果我收到一個鏈接,沒有必要嘗試下一個鏈接。
腳本在FF或Chrome上運行時,運行良好。有一些動畫在播放請求時播放,一旦鏈接返回,它就會相應地重定向。
當腳本在< = IE8或Safari中運行時,頁面sorta加載一半然後等待(動畫加載但不生成動畫)。一旦Ajax響應返回,頁面突然涌現,然後你重定向。
我已經嘗試了窗口準備和文檔準備,似乎沒有任何工作。
任何建議,將不勝感激。
感謝您的閱讀。
使用回調並打開異步 –