【问题标题】:jquery $.ajax function call is slow first timejquery $.ajax 函数调用第一次很慢
【发布时间】:2009-01-29 18:09:33
【问题描述】:

我正在使用 $.ajax 来更新数据库中的一些值。当页面第一次进行ajax调用时,它很慢。返回结果大约需要 5 或 6 秒。在第一次请求之后,它很快。我不确定是否有办法让第一个电话也很快。如果您有任何想法,请告诉我。

谢谢, 斯里达

【问题讨论】:

标签: jquery ajax


【解决方案1】:

我怀疑数据库正在做一些缓存,随后的请求是从缓存中填充的。如果这仅发生在数据的第一个请求上,而不管涉及的数据如何,那么我怀疑您要连接的 Web 服务需要在第一次操作时加载到内存中。

【讨论】:

    【解决方案2】:

    方法调用的是什么类型的服务?可能是它调用的服务很慢,而不是 jQuery。

    【讨论】:

    • 我认为 John 可能是对的,但我要补充一点,如果您在调试器下运行服务器,则很可能是调试器为引用的程序集加载调试信息的开销,而不是方法本身。
    【解决方案3】:

    为 IE 安装 Fiddler,或在 firefox 中运行 Firebug 控制台并查看请求/响应标头。你会看到延迟发生在哪里。

    【讨论】:

      【解决方案4】:

      您的 ajax 调用是否针对 ASP.NET 处理程序?如果是这样,那么它可能是从 ASP.NET 加载应用程序域。

      【讨论】:

        【解决方案5】:

        您应该记录服务器端脚本执行时间。我同意John,建议你此时专注于服务器而不是jQuery。

        【讨论】:

          【解决方案6】:

          感谢您的回复。慢的不是服务器端代码。如果是,那么每次都会很慢。这就是我们为了让它更快地工作而做的。当页面加载时,在 document.ready 函数中,我们进行了一个虚假的 Web 服务调用以消除初始延迟。现在它工作正常。服务器端代码实际上不是 Web 服务,而是 asp.net 中的页面方法。页面方法可以用作 asp.net 中的 web 服务。我将运行 Firefox 看看会发生什么。

          谢谢, 斯里达尔。

          【讨论】:

            【解决方案7】:

            如果只出现在 IE7 中,这是因为 IE7 渲染速度慢。这可能只是第一次发生,因为 jquery get/ajax 将以浏览器可以缓存的方式使用请求。

            基本上不清楚是渲染还是服务端。

            它仍然可能是服务器 - 查询缓存(或其他类型的缓存)意味着查询可能只有第一次很慢,然后很快。

            【讨论】:

              【解决方案8】:

              如果您在 ASP.NET 应用程序上发现问题

              当然,第一个请求总是需要更长的时间。 这个开销加载时间来自于为请求的应用程序编译的 JIT, 除非你是预编译的网站。

              换句话说, 只有在 ASP.NET 应用程序上将发布标志设置为“调试”时才会发生这种情况 如果将其设置为 'Release' ,您会发现每个请求的 url 都是第一次 会慢,但下次会很棒。

              (英语不是我的母语)

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-05-23
                • 1970-01-01
                • 2013-12-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多