В первый раз медленный вызов функции jquery $ .ajax - PullRequest
3 голосов
/ 29 января 2009

Я использую $ .ajax для обновления некоторых значений в базе данных. когда страница делает вызов ajax в первый раз, это происходит медленно. это займет около 5 или 6 секунд, чтобы вернуть результат. после первого запроса это быстро. Я не уверен, есть ли способ сделать первый звонок также быстрым. если у вас есть идеи, пожалуйста, дайте мне знать.

Спасибо, Шридхар

Ответы [ 8 ]

2 голосов
/ 29 января 2009

Я подозреваю, что база данных выполняет некоторое кэширование, и последующие запросы заполняются из кэша. Если бы это происходило только при первом запросе данных, независимо от используемых данных, то я подозреваю, что веб-служба, к которой вы подключаетесь, должна быть загружена в память при первой операции.

1 голос
/ 29 января 2009

Установите Fiddler for IE или запустите консоль Firebug в Firefox и посмотрите заголовки запроса / ответа. Вы увидите, где происходит задержка.

1 голос
/ 29 января 2009

Какой тип сервиса вызывает метод? Это, вероятно, медленный вызов службы, а не jQuery.

0 голосов
/ 03 декабря 2014

Если вы обнаружили проблему в приложении ASP.NET

Конечно, первый запрос всегда будет длиться дольше. Это время загрузки происходит из JIT-компиляции для запрошенного приложения, За исключением того, что вы предварительно скомпилировали сайт.

Другими словами, Это происходило только тогда, когда вы устанавливали флаг «Отладка» в приложении ASP.NET Если установить значение «Release», вы обнаружите, что это только первый раз для каждого запрошенного URL будет медленным, но в следующий раз будет круто.

(английский не мой родной язык)

0 голосов
/ 08 июля 2009

Если это происходит только в IE7, это происходит из-за медленного рендеринга IE7. Это может произойти только в первый раз, так как jquery get / ajax будет использовать запрос способом, который может быть кэширован браузером.

По сути, неясно, является ли это рендерингом или сервером.

Тем не менее, он все еще может быть сервером - кеширование запросов (или другие виды кеширования) означает, что запрос может быть медленным только сначала, а затем быстрым.

0 голосов
/ 30 января 2009

Спасибо за ответ. Это не код на стороне сервера, который медленный. Если это так, то это будет медленно каждый раз. Это то, что мы сделали, чтобы он работал быстрее. Когда страница загружается, в функции document.ready мы делаем ложный вызов веб-службы, чтобы устранить начальную задержку. Сейчас работает нормально. Код на стороне сервера на самом деле не веб-сервис, а метод страницы в asp.net. Методы страницы могут использоваться как веб-сервисы в asp.net. Я запустлю Firefox и посмотрю, что произойдет.

Спасибо, Шридхар.

0 голосов
/ 29 января 2009

Вы должны регистрировать время выполнения сценария на стороне сервера. Я согласен с Джоном и предлагаю вам сосредоточиться на сервере, а не на jQuery.

0 голосов
/ 29 января 2009

Ваш вызов ajax против обработчика ASP.NET? Если это так, то, вероятно, из ASP.NET загружается домен приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...