2013-05-17 90 views
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響應返回,頁面突然涌現,然後你重定向。

我已經嘗試了窗口準備和文檔準備,似乎沒有任何工作。

任何建議,將不勝感激。

感謝您的閱讀。

+0

使用回調並打開異步 –

回答

0

就像我在評論中所說的那樣,重新開啓異步功能。

添加您的重定向或您希望在ajax函數的回調中執行的任何操作。這很可能是你被鎖定的原因。