Php jqueryajax调用崩溃的IE9

Php jqueryajax调用崩溃的IE9,php,internet-explorer,jquery,Php,Internet Explorer,Jquery,我的应用程序通过jQuery来回调用我的PHP文件,从数据库收集数据并返回 在Google Chrome上测试应用程序时,一切正常,AJAX调用从不失败/冻结/超时。然而,当在IE9中进行测试时,AJAX调用将随机失败约5-10%,并将IE冻结约30-45秒。它最终“解冻”,要么成功完成调用,要么失败 以下是我的jQuery: var d = new Date(); $.ajax({ url: 'forms/settings/scripts/get-client.php?_='+d.g

我的应用程序通过jQuery来回调用我的PHP文件,从数据库收集数据并返回

在Google Chrome上测试应用程序时,一切正常,AJAX调用从不失败/冻结/超时。然而,当在IE9中进行测试时,AJAX调用将随机失败约5-10%,并将IE冻结约30-45秒。它最终“解冻”,要么成功完成调用,要么失败

以下是我的jQuery:

var d = new Date();

$.ajax({
    url: 'forms/settings/scripts/get-client.php?_='+d.getTime(),
    dataType: 'json',
    timeout: 5000, 
    type: 'POST',
    async: false,
    success: function(data){ 
        // do something with data
    },
    error: function(x, textstatus, m){
        if(textstatus==="timeout") {
            alert("Error! Timed out in 5 seconds (forms/settings/scripts/get-client.php). Please try again.");
        }
        else {
            alert("Error! There was a problem contacting (/forms/settings/scripts/get-client.php) for processing. Contact Support! "+textstatus);
        }
    }
});
下面是上面的AJAX调用的
get client.php

<?php
define('INCLUDE_CHECK',true);
require '../../../php/db_pdo_connect.php';

// set JSON array to return
$jsonArr = array('errorsExist' => "N");

try {
    // Begin a transaction, turning off autocommit
    $PDO->beginTransaction();
    // Select Client ID Length into JSON Array
    $jsonArr["clientID_len"] = $PDO->query('SELECT clientID_len FROM tbl_global_settings WHERE id = 1')->fetchColumn();
    // commit the queries
    $PDO->commit();
} 
catch (PDOException $e) {
    // Echo back JSON
    echo '{"appError": "'.$e->getMessage().'", "errorsExist":"Y"}';
    // rollback the transaction
    $PDO->rollBack();
    // End all PHP processes
    exit();
} 

// Echo back JSON array
echo json_encode($jsonArr);

?>

正如你所看到的,我已经设置了5秒的超时时间,当IE冻结时,它不会被触发。此外,我还将日期/时间字符串附加到URL以防止IE缓存


你知道是什么导致了这一切吗?IE是糟糕透了还是我做错了什么?

有什么特别的原因让你不进行异步调用吗?这里有一些关于如何避免它们的信息。JQuery添加了一个类似下划线的参数来绕过IE的缓存。它可能与您自己的版本冲突。您是否尝试过删除它,或者将缓存设置为true。@Clarence:Standby。。。现在检查一下@RTB:刚刚尝试使用内置的
cache:false
设置,但仍然遇到IE9冻结问题:(@FastTrack)您是否尝试过不使用
async:false
。因为如果请求花费的时间比平常长,您的脚本也会停止。