Я использую jQuery для публикации в веб-службе ASP .NET для реализации пользовательской функции автозаполнения. Код работает отлично, за исключением того, что он медленно работает в FireFox (он не может работать быстрее 1 секунды). IE горит быстро - отлично работает. Я смотрю пост в Firefox, используя Firebug.
Вот код услуги:
<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
И вызов jQuery ajax:
$.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
});
Как видите, я попытался использовать вместо этого глагол HTTP GET в надежде, что это сделает вызов быстрее. Поскольку это не так, я, вероятно, переключу его обратно на использование POST, если смогу. Сейчас я просто сконцентрировался на том, почему это так быстро в IE и так медленно в Firefox.
Версии: jQuery 1.3.2; Firefox 3.0.11; IE 8.0.6001.18783 (64-разрядная версия)
Спасибо за любые идеи, которые вы можете предоставить.