Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击后,如果服务器运行缓慢,是否重定向到另一个URL?_Javascript_Ajax_Performance_Xmlhttprequest_Dom Events - Fatal编程技术网

Javascript 单击后,如果服务器运行缓慢,是否重定向到另一个URL?

Javascript 单击后,如果服务器运行缓慢,是否重定向到另一个URL?,javascript,ajax,performance,xmlhttprequest,dom-events,Javascript,Ajax,Performance,Xmlhttprequest,Dom Events,如果第一个URL响应速度慢(当用户单击链接时),是否可能(在Javascript、ajax或其他语言中,例如在客户端站点上)将用户重定向到另一个URL A href=URL1,但如果服务器1在1秒后没有应答,则重定向到URL2(另一台服务器) 我在想类似于onclick事件的事情: 重定向到URL1、计时器、重定向到URL2,但如果服务器1没有响应,则之后的代码将不会执行 或者使用AJAX,但我不知道怎么做 案件,;单击页面(a href=urltracking),urltracking重定向到

如果第一个URL响应速度慢(当用户单击链接时),是否可能(在Javascript、ajax或其他语言中,例如在客户端站点上)将用户重定向到另一个URL

A href=URL1,但如果服务器1在1秒后没有应答,则重定向到URL2(另一台服务器)

我在想类似于onclick事件的事情: 重定向到URL1、计时器、重定向到URL2,但如果服务器1没有响应,则之后的代码将不会执行

或者使用AJAX,但我不知道怎么做


案件,;单击页面(a href=urltracking),urltracking重定向到URL2,但urltracking服务器可能会很慢…

您可以使用javascript的setTimeout功能

setTimeout("function()",1000);
在函数中,您需要编写重定向代码

另请参见以获取完整参考


如果我错了,请纠正我。

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

这样恐怕不行。如果目标URL位于您的域中,您可以通过使用虚拟AJAX调用进行“超时检查”来测量响应时间。类似于“发送测试获取,若服务器在XX秒内未响应,则将URL重写到备份站点”。但它不适合一般使用。

我总是尽量避免第三方网站会降低我自己网站的速度

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



其他可以工作的方法只是一个普通的旧标签,或者一个,等等。关键是它在页面之后加载,而不是在页面之前加载。跟踪服务器永远不会知道这两者之间的区别。

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

负载平衡应该在网络级别上完成?我对服务器没有控制权,只能在网站(html)上进行。谢谢你的回答。我考虑过这个函数,但有两个问题;internet explorer似乎对setTimeOut没有相同的定义,甚至在Firefox中也不起作用。第一行:gotoURL1,第二行setTimeOut-->第二行将不执行(因为浏览器将等待第一行执行),我想您是想使用
setTimeOut
而不是
setTimeOut
。建议不错。但是,您也有编辑权限!没有一个网站是我自己的。一个用于跟踪点击(跟踪公司);另一个是客户端-->如果跟踪公司的实验速度较慢,他不想阻止他的用户在这种情况下,最好使用AJAX。你可以同时发送这两个请求。thx,你会怎么做?将考虑跟踪URL?通常跟踪URL只是一个带有特定代码的URL,不返回任何有用的数据。请求只是为了记录而完成的,url中的代码是为了标识。您可以使用jQuery.Ajax或jQuery.Get速记函数来检索该url。另一种更低级的方法是创建一个指向该url的1x1隐藏图像。图像将无效,但这没有问题,因为它是隐藏的。加载页面时,至少会触发请求。通常一个浏览器会同时打开至少4个图像下载连接,这样你的“跟踪像素”也可以在你发出其他请求时加载。Ajax优于pixel的优点是,Ajax可以在页面加载后的任何时间启动,而pixel则是在DOM就绪后直接加载的。谢谢你的回答,我对此感到震惊,但很高兴知道谢谢你,我肯定会这样做来跟踪页面浏览量。在这里,我不知道是否可能(使用异步调用);跟踪器正在点击(ie href=“”重定向到最终URL)这是我的假设,它在技术上应该仍然有效。如果您只是直接链接到目标URL,然后像我描述的那样关闭跟踪器,它应该具有相同的网络效果。我想如果你无法控制他们链接到你的方式,这是行不通的。当然有一个警告是,这会导致你的页面出现第二个页面视图,因为IMG或IFRAME也会跟随重定向。但如果这是你唯一的选择,而你的首要任务是表现的话,这可能是值得的;您的选择是触发目标页面上的跟踪器?问题是跟踪器必须计算从第1页到第2页的点击次数(即使我不在第1页,我也可以转到第2页)。或者,如果我在单击后立即触发跟踪器代码,它将无法工作;当页面更改时,跟踪器将没有时间触发安全,但在客户端是否可能?如果必须,我将启动一个超时函数,在body标记中首先使用内联脚本重定向。然后,当DOM准备就绪时,我将清除超时。但这也将重定向连接速度慢的用户。如果可以的话,请再次在服务器端执行。我的问题没有正确编写(我编辑了它)。我想点击一下就可以做到这一点;用户点击一个urltracking,如果urltracking服务器很慢,我不想阻止他。。。
$(function(){
    var tracker = new Image();
    tracker.src = "http://tracker.com/path/to/tracker
});