12

我正在用 Java 开发我的网站。我正在使用 jquery、ajax,如下所示:

$.ajax({
    dataType: "json",
    url : 'getWords.htm',
    type: 'post',
    async : false,
    data : {dataJSON : JSON.stringify(dataJSON)},
    success : function(words) {
        .....
    }
});

它运行良好,但在 Chrome 中它的运行速度比 Firefox、IE 和 Opera 慢。在 Chrome 中我有一点延迟(大约 0.8 秒)。当我每次单击有四个 ajax 查询时,它真的很慢。我该如何解决?

在萤火虫中我看到:发送 5 毫秒,等待 512 毫秒,接收 3 毫秒,但在其他浏览器中都很快。

谢谢。

4

4 回答 4

3

如果您没有.post()在动态生成的元素上加载 的内容,请尝试将其放入window.onload而不是$(document).ready,这对我有用。希望能帮助到你!

更新

作为post()一个 click() 事件的触发,父元素需要准备好。但是,如果您在post()外部调用该函数$(document).ready并将结果保存到javascript变量中,您可能会赢得一些时间。initialValue从用户第二次单击您的元素时起,您​​就需要对其进行更新。

于 2012-06-24T10:42:31.953 回答
1

使用async: 'true'.

这是默认设置,除非您有充分的理由这样做,否则您不应切换到同步请求。首先,它将使浏览器能够并行下载文件,而第二个同步请求可能会阻塞浏览器线程。

顺便说一句:“从 jQuery 1.8 开始,不推荐使用 async: false 。” (来自jQuery.ajax文档)

于 2012-06-24T10:52:56.683 回答
1

前段时间我也发生过类似的事情,调用 AJAX、POST 或 GET 时,每个浏览器的响应时间都不同。结果是我从 url 传递的大量数据,在你的例子中是“getWords.htm”。有几个问题可以帮助确定您的案例出了什么问题:

  1. 您要发回多少数据,格式是什么?尝试 JSON 并在“SUCCESS”函数中解析它以生成 HTML 代码/页面。
  2. 您尝试一次生成多少个 DOM 对象?它有助于即时解析您需要的任何内容,一旦您在客户端拥有 JSON 并从那里动态生成 HTML,这很容易做到。
于 2013-02-20T17:40:50.413 回答
-3

有时最好在机器上使用 jquery 而不是存储在 google 中的 jquery。取决于您拥有的互联网连接

当地的

<script type="text/javascript" src="/js/jQuery.min.js"></script>

来自谷歌的 API

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
于 2013-01-21T14:32:50.670 回答