2013-07-18 2 views
6

Я знаю, как ждать завершения ajax, но если я собираюсь перенаправить страницу после того, как некоторые вызовы ajax будут уволены, должен ли я ждать их завершения до перенаправления? Это имеет значение?Должен ли я ждать завершения ajax для перенаправления страницы?

+5

Я думаю, это зависит от того, нужно ли выполнять обработку ошибок вокруг кода состояния, возвращаемого вызовом ajax. Если вы перенаправите до того, как закончите, как бы вы узнали, что это прошло правильно? – JanR

ответ

5

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

+0

Правда правда. Например, вызов ajax, который учитывает просмотры страниц, может быть просто уволен из забытого. – Lix

+1

Является ли ajax хорошим способом подсчета просмотров страниц? Не будет подсчитывать пользователей с выключенным JS. –

+0

Только около 2% пользователей отключены javascript: http://stackoverflow.com/questions/9478737/browser-statistics-on-javascript-disabled. Так что действительно это зависит от того, насколько вы точны быть ... Я обычно просто игнорирую этих людей лично. – adavea

1

Я рекомендую ждать и обрабатывать возможные ошибки, которые могут возникнуть.

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

Вы могли бы потратить дополнительно 0,1 секунды на выполнение, но кому это нужно?

+0

Неправда, это процесс, который я хочу сделать из ajax, - это то, что подходит для 20 секунд. Так волнует. – vaso123

+0

Прошло некоторое время с тех пор, как я сделал этот комментарий. То, что я должен был понять, и я в основном подразумевал то же самое, что и принятый ответ, заключается в том, что если вы можете абсолютно гарантировать, что выполнение будет успешным, то обязательно, вы можете перенаправить, но есть вероятность, что соединение будет просто потеряться или возникнет исключение, с которым вы захотите справиться. – Jonast92

1

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

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

Смежные вопросы