Лучшая практика, чтобы избежать блокирования всплывающих окон в браузере с участием события Ajax - PullRequest
2 голосов
/ 09 августа 2011

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

Теперь я знаю, это довольно простой совет при использовании AJAX, никогда(когда-либо) перейти на синхронизированный XHR.Но что, если этот XHR является частью некоторых критериев проверки, которые в случае успеха должны открывать некоторые всплывающие окна.В тот момент, когда вызывается асинхронный XHR, пользовательское событие заканчивается.Всплывающие окна, которые должны были открываться в обратном вызове, никогда не произойдут, если браузер хорошо справляется со своей работой.

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

OneЧистое решение, которое я прочитал, состоит в том, чтобы сразу открыть всплывающие окна и изменить их поведение в обратном вызове.Теперь это может работать, конечно, с дополнительным состоянием, которое необходимо сохранить, пока мы не введем обратный вызов.Есть ли лучшее решение, чем это?Или разумам лучше придерживаться Синхронизированного XHR, если это не доставляет слишком много хлопот?

1 Ответ

1 голос
/ 09 августа 2011

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

Это был мой ответ, когда я увидел заголовок вашего вопроса.

Теперь это может работать, конечно, с дополнительным состоянием, которое необходимо сохранить, пока мы не введем обратный вызов.

Объявить обратный вызов как замыкание в функции, которая создает всплывающее окно. Он унаследует все состояние, и браузер не заблокируется.

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