VBScript (классический ASP) и несколько вызовов ajax бок о бок - PullRequest
0 голосов
/ 24 октября 2011

У меня есть один вызов ajax, который подключается к базе данных, устанавливает один флаг в базе данных и ожидает создания одного файла другим процессом, который ищет флаг.

Пока файл не создан на сервере, ajax продолжает ждать. После создания файла ajax читает файл и отображает его содержимое.

Теперь проблема в том, что когда-нибудь бэкэнд-процесс, который создает файл, застрял в проблеме с сокетом и никогда не создавал файл, но ajax продолжает ждать в этом случае, который получает тайм-аут только тогда, когда происходит его тайм-аут,

Что все, что я хочу показать кнопку запроса остановки, которая может остановить текущий запрос Ajax, поскольку время ожидания велико, и пользователь может захотеть остановить его до истечения времени ожидания.

Вот то, что я попробовал, я изменил код, который отслеживает существование файла, и добавил проверку переменных сеанса, например, если Session ("AbortCheck") = true, а затем выйти из сценария.

и сделал еще один ajax-вызов, чтобы обновить переменную sessin, чтобы в цикле on, когда сценарий нашел session = true, он немедленно остановил запрос.

Во время отладки я обнаружил, что мой новый запрос ajax, который обновляет переменную сеанса, фактически выполняется только после завершения первого ajax. и поэтому он никогда не останавливался по запросу пользователя, чтобы остановить запрос.

Может ли кто-нибудь дать мне знать, как остановить работающий AJAX (что занимает много времени) при вводе пользователем?

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 октября 2011

Я исправил выполнение на стороне сервера, удалив цикл со стороны сервера, который постоянно проверяет файл, и поместил цикл в файл js для повторной проверки того же самого, и для рукопожатия, если файл не найден на сервере, я передаюсообщение как ожидающее ajax и другой флаг для проверки прерывания от jquery, что решило проблему.

0 голосов
/ 24 октября 2011

Возможно, вы могли бы реализовать некоторое управление ошибками в своем скрипте AJAX вместо того, чтобы позволить пользователю управлять этим.

            'Try to open the socket here

            on error resume next

            if err<>0 then
               Response.Write("1")
            else
               Response.Write(fileContent)
            end if      

Затем вы получаете скрипт вызывающей стороны, уведомляющий об ошибке пользователя, если скрипт AJAXs возвращает 1.

...