JS虽然实现不了真正的Ping,但Ping的本质仍然是计算请求与回复的时间差,所以可以模拟着实现.但其功能终究欠缺,因此想做个较为完美的Ping效果还是困难.
下面是以前做个两个Ping效果,之所以分开是应为其功能无法合二为一.http://www.etherdream.com/funnyscript/ping/ping.html
第一个是用XMLHTTP实现的.虽然功能强大,但因无法跨域,只能测试自己的站点.
http://www.etherdream.com/funnyscript/ping/ping2.html
第二个是用Image对象实现.将目标站点当作图片路径赋予,待图片onerror事件产生时,便可得其时间差.虽然可以测试任意的站点,但精确度却不稳定.不同的站点响应HTTP404的内容不一样,大小不同,因此时间只能算Request/Response,而不能算Request/Reply.大家有什么好的想法多多指教.