点击,如果服务器速度慢,重定向到另一个URL?

时间:2011-02-19 09:56:49

标签: javascript ajax javascript-events xmlhttprequest performance

是否可以(在javascript,ajax中,例如在客户端网站上)将用户重定向到另一个网址,如果第一个网址回答缓慢(当他点击链接时)?

a href = URL1但如果1秒后没有来自server1的回复,则重定向到URL2(另一台服务器)

我正在考虑关于事件onclick的事情: 重定向到URL1,定时器,重定向到URL2,但如果服务器1没有响应,后面的代码将不会被执行...

或者然后使用AJAX,但我不知道如何

案件;点击一个页面(一个href = urltracking),urltracking重定向到URL2,但是urltracking服务器可能很慢......

5 个答案:

答案 0 :(得分:0)

您可以使用javascript的setTimeout函数。

setTimeout("function()",1000);

这里的功能你需要编写重定向代码。

另请参阅this question以获取完整参考。

如果我错了,请纠正我。

答案 1 :(得分:0)

这两个网站都是您自己的吗?也许你应该买一个负载均衡器。这本质上是一个服务器,它监视两个Web服务器的性能并将请求重定向到最不忙的那个。

答案 2 :(得分:0)

我担心以这种方式不可能。如果目标URL位于您的域中,您可以使用虚拟AJAX调用通过“超时检查”来测量响应时间。像“发送测试GET,如果服务器在XX秒内没有响应然后重写URL到备份站点”之类的东西。但它不适合一般用途。

答案 3 :(得分:0)

我总是尽量避免第三方网站放慢我自己网站的速度。

也许你可以用某种异步形式进行调用?在DOM ready事件中有一段javascript,它会调用跟踪服务器,类似于(在jQuery中):

$(function(){
    var tracker = new Image();
    tracker.src = "http://tracker.com/path/to/tracker
});

其他可行的方法只是一个普通的旧标签,或者等等。关键是它会在你的页面之后加载,而不是在它之前加载。跟踪服务器永远不会知道差异。

答案 4 :(得分:0)

为更好的服务器支付更多的钱,在极端情况下使用负载均衡器。你永远不需要做这样的客户端。