2013-07-18 23 views
6

我知道如何等待ajax完成,但如果我打算在一些ajax调用关闭后重定向页面,我应该等待它们在重定向之前完成吗?有关系吗?我应该等待ajax完成重定向页面吗?

+5

我想这取决于你是否需要对由ajax调用返回的状态码进行错误处理。如果您在完成之前重定向,您会如何知道它正确地通过了? – JanR

回答

5

如果您确信ajax调用会成功,那么一旦发生ajax调用,就您的服务器而言,重定向不会影响它。但请不要忘记,客户可能会失去联系或发生一些错误,因此您应该等待以确保呼叫成功。需要考虑的另一件事是,你的ajax调用是否会影响你要重定向到的任何页面。在这种情况下,请务必在重定向之前等待。你不会希望你的用户被重定向到一个破损的页面,因为他们的连接速度很慢,或者你的服务器有呃逆。

+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做什么的过程是什么去20secs。很在乎。 – vaso123

+0

自发表此评论以来,已经有一段时间了。我应该清楚的是,我基本上暗示与被接受的答案相同的事情是,如果你可以绝对保证执行会成功,那么肯定,你可以重定向,但有可能这个连接只是简单的迷路或者会出现你想要处理的异常。 – Jonast92

1

我认为Ajax后跟重定向对于Ajax并不是一个好的用例。 相反,我会建议做一个定期的服务器请求,然后在重定向到您的最终目的地之前照顾服务器上的所有操作。

这将使更简单的模式和更少的网络流量。 如果您想避免重新加载页面,我建议使用Ajax。但是,在您的场景中,您计划在操作完成后立即离开页面,那么为什么不避免Ajax会给你带来的后果。