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 Ajax加载冻结右键单击_Javascript_Jquery_Ajax_Freeze - Fatal编程技术网

Javascript Ajax加载冻结右键单击

Javascript Ajax加载冻结右键单击,javascript,jquery,ajax,freeze,Javascript,Jquery,Ajax,Freeze,所以我不确定以前是否有人遇到过这种情况,但在我的ajax中,我加载了大量数据。就像很多数据一样。主要问题是页面加载,加载速度非常快,但当您尝试右键单击页面的任何部分时。右键单击直到整个页面加载后5秒左右才起作用。因此,加载5秒钟后,右键单击上下文菜单将最终打开。这比什么都重要 你知道如何同时加载大量数据而不让数据延迟吗 这是我的ajax。我知道,很简单 <div id="load_user_data"></div> <script type="text/javasc

所以我不确定以前是否有人遇到过这种情况,但在我的ajax中,我加载了大量数据。就像很多数据一样。主要问题是页面加载,加载速度非常快,但当您尝试右键单击页面的任何部分时。右键单击直到整个页面加载后5秒左右才起作用。因此,加载5秒钟后,右键单击上下文菜单将最终打开。这比什么都重要

你知道如何同时加载大量数据而不让数据延迟吗

这是我的ajax。我知道,很简单

<div id="load_user_data"></div>
<script type="text/javascript">
$('#load_user_data').load("ajax/load_user_data.php?load=<?php echo $user; ?>", function() {
    window.setInterval("loadData", 1000);
});
</script>

您的问题不太可能出现在AJAX调用中,而是在处理它的响应方面

浏览器JS、DOM渲染、CSS绘制。。。整件事都在一条线上运行。如果您出于任何原因锁定了该线程,那么其他所有内容—计算、DOM渲染。。。即使关闭选项卡也可能完全挂起,直到该块消失

当您进行AJAX调用时,除非您使用的是旧系统,在旧系统中,您要求使用同步AJAX,但绝大多数情况下都不会这样做—99%的情况下,有一种更好的方式可以让AJAX调用在几乎没有时间的情况下阻塞;它会发出请求,然后消失,让浏览器继续做自己的事情。 当服务器发送了数据,浏览器完成了当前任务后,AJAX将返回,解析数据,并运行您要求随后运行的任何任务

var value = false;
function hasValueFlipped () { return value !== false; }

AJAX.get("data.json", function () {
    console.log("AJAX has returned");
    console.log("flipped now?", hasValueFlipped());
});

console.log("flipped?", hasValueFlipped());
value = true;
console.log("flipped?", hasValueFlipped());
应打印:

"flipped? false" "flipped? true" "AJAX has returned" "flipped now? true"
问题是,如果你要传递兆字节的数据,那么浏览器需要转换成元素来绘制,或者执行繁重的数学运算,等等。。。在所有这些数据上运行的任务意味着您的线程被完全阻塞,在完成之前,任何单击、键入、离开等操作都不会起作用

试试

将任务分解为更小、异步的部分


b将请求和操作的结果分成更小的部分,一个接一个地加载数据块,链接ajax加载调用,让浏览器在等待ajax响应时处于空闲状态,以便能够对用户做出反应actions@Igor那么基本上就像无限卷轴?我想这就是它的名字。无限卷轴就是它的应用之一technique@Igor还有,推拉也是其中之一吗?我知道一点无限卷轴,但我一直听说推拉,所以我想知道它是否是相同的东西。