谷歌浏览器滚动冻结,同时在页面上添加ajax内容

时间:2015-09-03 09:12:13

标签: javascript ajax google-chrome scrollbar

我的Chrome滚动条有问题,在Mozilla上没有这样的问题。 我有几个同步ajax请求,然后在页面上附加一些信息,它们需要大约2秒才能加载。在这段时间滚动条冻结并且不可用,当ajax结束时滚动工作正常。

3 个答案:

答案 0 :(得分:0)

当你使用同步AJAX时页面停止直到ajax结束,所以如果你想让页面不停止,必须是异步AJAX调用。

  

你可以在这里看到更多:   Documentation AJAX W3Schools

答案 1 :(得分:0)

您所描述的问题不是浏览器行为问题。

当您发出同步请求时,表示响应的待处理代码。 由于javascript是单线程语言(现在让我们忽略web工作者), UI处理/操作也待定, 这就是浏览器或滚动条“卡住”的原因。

它在Firefox上运行的原因是不推荐使用同步调用(顺便说一句,因为“卡住”行为),而你实际在做的是异步请求; 您可以在此处详细了解:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests

答案 2 :(得分:0)

  

Javascript完全是单线程的。

     

如果您进行多次AJAX调用,您将收到每个响应   一旦服务器发送它;订单取决于时间量   它需要服务器发送每个回复。

     

如果您的代码在服务器回复时仍在运行,则回复将会执行   只有在代码完成后才能处理。

     

您应该尝试在单个请求中加载所有数据。

来源:SLaks

我可能会在这里碰壁,在其他编程语言中你可以为这样的连接启动一个新的线程,如果你运行多线程(有点像层)你的界面保持原样/是。