Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript方法中的Jquery对话框打开延迟_Javascript_Jquery - Fatal编程技术网

Javascript方法中的Jquery对话框打开延迟

Javascript方法中的Jquery对话框打开延迟,javascript,jquery,Javascript,Jquery,我在纯HTML页面中有一个保存按钮,在这里我调用一个JS函数,该函数使用XMLHttpRequest保存数据。我正在尝试实现一个JQuery模式弹出窗口,当单击save按钮时,它将显示一个正在加载的图像。但打开对话框几乎需要2秒钟,有人能告诉我为什么吗 这里是HTML部分 <div id="dialog1" title="Waiting" style="text-align:center;background-color:#ffffff;border:none;display:none;"

我在纯HTML页面中有一个保存按钮,在这里我调用一个JS函数,该函数使用XMLHttpRequest保存数据。我正在尝试实现一个JQuery模式弹出窗口,当单击save按钮时,它将显示一个正在加载的图像。但打开对话框几乎需要2秒钟,有人能告诉我为什么吗

这里是HTML部分

<div id="dialog1" title="Waiting" style="text-align:center;background-color:#ffffff;border:none;display:none;">
   <img src="~/Images/icon-load.gif" border="0" align="left" hspace="12" height="175" width="175" />

}

事实上,我能够通过使请求异步并在request.readyStateChanged事件中成功/失败后编写依赖代码来解决问题

        request.onreadystatechange = function () {
        if (request.readyState == 4) {

            $('#dialog1').dialog('close');
            ScrollToTop();

            $("#message").show();

            //200 OK ; 201 Created ; 202 Accepted
            if (request.status == 200 || request.status == 201 || request.status == 202) {
                $("#message").text('Attribute deleted successfully!!!');
                $("#message").css("color", "green");
                setTimeout(function () { fadeLabelOut(); }, 5000);
                setTimeout(function () { attributedetails(); }, 6500);
            }
            else {
                $("#message").text("Failed to add attribute!!!");
                $("#message").css("color", "red");
                setTimeout(function () { fadeLabelOut(); }, 5000);
            }
        }
    }

感谢Drakes提供的asyn输入,这确实帮助了我。

实际上,我能够通过使请求异步并在请求成功/失败后编写相关代码来解决问题。readyStateChanged事件如下

        request.onreadystatechange = function () {
        if (request.readyState == 4) {

            $('#dialog1').dialog('close');
            ScrollToTop();

            $("#message").show();

            //200 OK ; 201 Created ; 202 Accepted
            if (request.status == 200 || request.status == 201 || request.status == 202) {
                $("#message").text('Attribute deleted successfully!!!');
                $("#message").css("color", "green");
                setTimeout(function () { fadeLabelOut(); }, 5000);
                setTimeout(function () { attributedetails(); }, 6500);
            }
            else {
                $("#message").text("Failed to add attribute!!!");
                $("#message").css("color", "red");
                setTimeout(function () { fadeLabelOut(); }, 5000);
            }
        }
    }

感谢Drakes提供的asyn输入,这确实帮助了我。

将request.open中的false更改为true(…)。您希望异步,而不是同步。如果是同步的,则表示请求将等待响应,以便程序继续执行?所以我首先调用open方法,对话框将打开,然后只有我们调用xmlhttprequest并等待响应,然后执行其余的操作,那么为什么会延迟呢。不管怎样,你的建议是有效的:)但是这一改变造成了一个严重的问题,因为我检查响应代码的条件总是显示失败,因为代码行没有等待响应。最好不要使用异步来阻止JS。在本例中,什么调用addnewentity()?我们填写一些文本框并单击一个按钮可能会延迟。按钮的onclick就是这种方法。然后JS获取文本框值,创建请求,然后创建一个实体。所以我的想法是,一旦我们点击按钮,模态弹出窗口就会出现,它会一直打开直到得到响应。我像这样重写了代码,在requestreadystate上,编写了其余的代码。与此类似,request.onreadystatechange=function(){if(request.readyState==4){……我的代码在这里……}在request.open(…)中将false更改为true。您想要的是异步,而不是同步。如果是同步的,则意味着请求将等待响应,以便程序执行继续rt?因此,我首先调用open方法,因此对话框将打开,然后只有我们调用xmlhttprequest并等待响应,然后再执行其余操作,那么为什么会出现延迟。无论如何,我们的建议是:)但change提出了一个严重的问题,因为我检查响应代码的条件总是显示失败,因为代码行没有等待响应返回。最好不要使用async阻止JS。在这种情况下,调用addnewentity()是什么?我们填写一些文本框并单击一个按钮可能会延迟。按钮的onclick就是这个方法。然后JS获取文本框值,创建请求,然后创建一个实体。所以我想,一旦我们单击按钮,模式弹出窗口就会出现,它将保持打开状态,直到收到响应。我重写了代码像这样,在requestreadystate上,编写其余的代码