замедляется загрузка страницы? - PullRequest
0 голосов
/ 26 января 2011

Когда я ввожу имя пользователя и пароль на моем сайте.если имя пользователя и пароль верны, то у меня есть метод ac #, вызываемый на Page_Load для базы данных (который удаляет ненужные записи).если есть одна запись или 100, мне все еще придется ждать загрузки страницы, пока этот процесс не будет завершен :( Я использую эту строку для загрузки всех файлов, которые затем будут использоваться для сравнения файлов HttpContext.Current.Request.PhysicalApplicationPath; как бы то ни было, если бы я использовал статический путь, то есть: c: / images, то все пошло не так :( Так что же может быть возможным решением?

Ответы [ 3 ]

2 голосов
/ 26 января 2011

Вы можете начать удаление записи асинхронно:

Тогда загрузка страницы произойдет до операция удаления завершена.


РЕДАКТИРОВАТЬ: Поскольку вы упоминаете, что используете Access DB, я думаю, что вы не потеря времени за счет удаления записей, но с помощью какой-либо другой операции (я подозреваю, закрытие БД, см. мой комментарий к ответу Амира).Теперь вы должны сделать отметку , либо с помощью инструмента (см. этот вопрос ), либо «вручную», используя класс секундомера .В любом случае, прежде чем пытаться оптимизировать, используйте один из этих методов, чтобы выяснить, что действительно вызывает задержку.

0 голосов
/ 26 января 2011

Это не похоже на асинхронную проблему для меня.Удаление 100 или даже 1000 записей в базе данных не должно занимать более нескольких миллисекунд.Если бы я подозревал, я бы подумал, что вы неправильно настроили свои индексы.Поэтому вместо того, чтобы удалять эти записи с помощью быстрого индекса, необходимо просмотреть каждую запись и посмотреть, соответствует ли она.

0 голосов
/ 26 января 2011

Используйте Ajax и сделайте его асинхронным в качестве веб-службы.

Edit1: я имею в виду переместить код из Page_Load в метод веб-службы, а затем вызвать эту веб-службу из javascript после загрузки страницы, отправляя ему информацию, необходимую для правильного выполнения вашей операции, таким образом, клиентская сторона выглядит более отзывчивой - я предполагаю, что предпринятые действия не требуются для правильной визуализации вашего клиентского кода, однако, если нет, вы можете рассмотреть возможность обновления страницыпосле того, как веб-сервис вернется.Это можно сделать вручную с помощью встроенного инструментария AJAX или с помощью такой библиотеки, как jQuery.

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