簡體   English   中英

AJAX jQuery凍結IE / Safari

[英]AJAX jQuery Freezing 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調用相同的腳本,並將用戶重定向到所接收的鏈接。

我關閉了同步功能,因為我需要等到收到“一個”的響應后再嘗試“兩個”,因為如果收到鏈接,那就沒有必要嘗試下一個。

當腳本在FF或Chrome上運行時,它可以正常運行。 請求處理期間會播放一個小動畫,一旦返回鏈接,它就會相應地重定向。

當腳本在<= IE8或Safari中運行時,頁面sorta加載一半,然后等待(動畫加載但沒有動畫。)。 一旦ajax響應返回,頁面就會突然恢復活力,然后您將被重定向。

我已經嘗試了窗口准備和文檔准備,但似乎沒有任何效果。

任何建議,將不勝感激。

謝謝閱讀。

就像我在評論中說的那樣,重新打開異步。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM