Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
Asp.net jQuery AJAX在Firefox中速度慢,在IE中速度快_Asp.net_Asp.net Ajax_Jquery_Asmx - Fatal编程技术网

Asp.net jQuery AJAX在Firefox中速度慢,在IE中速度快

Asp.net jQuery AJAX在Firefox中速度慢,在IE中速度快,asp.net,asp.net-ajax,jquery,asmx,Asp.net,Asp.net Ajax,Jquery,Asmx,我正在使用jQuery发布到ASP.NETWeb服务,以实现自定义的自动完成功能。除了FireFox中的速度慢(不能让它超过1秒)之外,代码工作得很好。IE的速度非常快,效果非常好。我用Firebug在Firefox上看了这篇文章 以下是服务代码: <ScriptService(), _ WebService(Namespace:="http://tempuri.org/"), _ WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile

我正在使用jQuery发布到ASP.NETWeb服务,以实现自定义的自动完成功能。除了FireFox中的速度慢(不能让它超过1秒)之外,代码工作得很好。IE的速度非常快,效果非常好。我用Firebug在Firefox上看了这篇文章

以下是服务代码:

<ScriptService(), _
WebService(Namespace:="http://tempuri.org/"), _
WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1), _
ToolboxItem(False)> _
Public Class TestWebSvc
  Inherits System.Web.Services.WebService

  <WebMethod(), _
  ScriptMethod(ResponseFormat:=Script.Services.ResponseFormat.Json, UseHttpGet:=True)> _
  Public Function GetAccounts(ByVal q As String) As Object

    'Code taken out for simplicity

    Return result

  End Function

End Class
正如您所看到的,我尝试使用HTTPGET动词,希望这样可以加快调用速度。如果可能的话,我可能会将它切换回使用POST。现在我只关注为什么它在IE中超快而在Firefox中超慢

版本:jQuery 1.3.2;火狐3.0.11;IE 8.0.6001.18783(64位)


感谢您提供的任何见解。

我敢打赌IE正在缓存它。出于某种原因,(以前的文章,但我仍然看到这个问题),当涉及到缓存时,这可能也不例外。试着运行几个健全的检查,看看它是否真的在缓存它

您使用beforeSend:有什么原因吗

您可以将内容类型设置为一个选项,如下所示:

contentType:“应用程序/json;字符集=utf-8”


另外,为什么不将web方法的url设置为相对的或绝对的?我怀疑完整的uri是否会有所不同,但你永远不知道。

因此,我没有在Visual Studio中点击“Run”,而是在IIS中创建了一个应用程序,并从那里访问了页面-现在它在FireFox和IE中都能快速工作。奇怪。。。我仍然对此有点担心——我有一种感觉,这可能会再次困扰我,但现在看来问题已经解决了。

我知道这个问题我来晚了,但我不得不处理类似的情况。原来“问题”是使用了而不是127.0.0.1


IE使用任意一个URL都执行得很快。FF使用IP地址时速度很快,但使用localhost时增加了1秒的延迟。

对不起,我回答这个问题太晚了。Cassini(VS Web服务器)+Firefox已知任何服务器请求(不仅仅是ajax/webservice请求)的性能问题。127.0.0.1解决方案是一个修复方案-另一个是更改firefox中的设置:


当您暂停或禁用firebug时,是否仍然很慢?我注意到使用firebug会对性能产生严重影响。是的,即使禁用firebug,速度也一样慢。是的,这是可能的。对于GET请求,缓存在默认情况下是正确的。当我改用POST时,IE仍然很快,Firefox仍然很慢。我禁用了缓存,得到了相同的行为。哇,很有趣。我也遇到了同样的问题,但是如果在VS.FF(还有Chrome)中运行MVC+ExtJS应用程序,当IE处于即时状态时,它永远不会在不到1秒的时间内返回Ajax帖子。我花了几个小时试图弄明白这一点,直到我找到了这条线索。安装到IIS中,现在它在所有浏览器中都很流行。我认为微软已经以某种方式优化了VS+IE组合(令人震惊…)。谢谢你——我真的很害怕我的应用程序会无法使用。非常感谢你的回答——解决了我已经忍受了好几天的问题
$.ajax({
    beforeSend: function (req) { req.setRequestHeader("Content-Type", "application/json"); },
    contentType: "application/json; charset=utf-8",
    type: "GET",
    url: "http://localhost/Suggest/TestWebSvc.asmx/GetAccounts",
    data: "q='" + element.val() + "'",
    dataType: "json",
    success: testWebSvcSuccess
  });