jquery $ .ajax函数调用第一次很慢

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

谢谢,斯里达尔

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

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

安装适用于IE的Fiddler,或者在firefox中运行Firebug控制台并查看请求/响应标头。 你会看到延迟发生的地方。

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

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

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

谢谢,斯里达尔。

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

基本上,不清楚它是渲染还是服务器。

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

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

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

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

(英语不是我的母语)