找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Spaceship优惠码 Namecheap优惠码阿里云2核2G3M新老续费同享99元/年!
查看: 253|回复: 2

[程序代码] php+js测试加载时间的代码

[复制链接]
发表于 2010-9-11 10:43:26 | 显示全部楼层 |阅读模式
把下面的代码存为PHP文件(UTF8) 设置好地址 放在PHP空间里即可
JS代码来源于监控宝
  1. <?php
  2. Header('Cache-Control: no-cache');
  3. $rurl=$_SERVER['SCRIPT_NAME'];//数据提交地址 默认为本文件
  4. $testurl='/test.jpg';//用于测试的图片

  5. //if(isset($_GET['ip'])){ $ip=$_GET['ip'];}
  6. /*        else{$ip=$_SERVER['REMOTE_ADDR'];}
  7.         include('misc.func.php');
  8.         echo convertip($ip);*/
  9. if(!empty($_GET['loadtime'])){
  10. /*
  11. 测试完成后GET提交3个参数id,ref,loadtime
  12. ID可忽略 ref是来路 loadtime是加载时间ms
  13. 本代码没有数据记录功能 如需记录数据请自己增加写文件/MYSQL的部分
  14. 显示访问者所在地,ISP需相应数据库
  15. */       
  16. //返回JSON数据到客户端
  17. $a=array('ip'=>$_SERVER['REMOTE_ADDR'],
  18. 'zone_name'=>'',
  19. 'isp_name'=>'',
  20. 'level'=>'',
  21. 'load_time'=>$_GET['loadtime']);
  22. $json=json_encode($a);
  23. echo "<script>parent.trace('".$json."');</script>";
  24. }else{
  25. header('Content-Type:text/html;charset=utf-8');//UTF8编码
  26. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  27. <html xmlns="http://www.w3.org/1999/xhtml">
  28. <head>

  29. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  30. <title>访问速度测试</title>
  31. <style>
  32. body{background-color:#E8EEF7;font-family:Verdana;}
  33. .ask{font-size:14px;margin:3px 0;}
  34. .answer{font-size:12px;margin:0;margin-bottom:10px;color:#999;}
  35. .btn{background-color:#2B8C00;border:0;font-size:14px;color:#fff;font-weight:bold;padding:6px 12px;display:inline-block;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px; cursor:pointer;}
  36. </style>
  37. </head>



  38. <div style="display:none;" id="loader"></div>
  39. <div style="padding:20px;margin:10px auto;margin-top:50px;width:500px;background-color:#fff;border:1px solid #ccc;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px;">
  40.         <p style="font-size:16px;font-weight:bold;">收集您到本站的访问时间</p>
  41.         <div style="margin-top:30px;color:#333;">
  42.                 <p class="ask"></p>
  43.                 <p class="answer"></p>
  44.                 <p class="ask">需要安装软件吗?</p>
  45.                 <p class="answer">完全不需要,整个收集过程只需要持续几秒钟,不会在您的电脑中安装任何程序或文件。</p>
  46.         </div>
  47.         <div style="margin-top:30px;width:420px;height:18px;padding:1px;border:1px solid #949DAD;">
  48.                 <div style="width:0;height:18px;float:left;background-color:#D4E4FF;font-size:1px;" id="process"></div>
  49.         </div>
  50.         <div id="__tips" style="padding-top:5px;font-size:12px;">正在收集数据,请稍候。整个过程可能需要几秒钟时间……</div>
  51.         <div id="__result" style="margin-top:20px;font-size:12px;line-height:15px;"></div>
  52.         <div id="__close" style="margin-top:20px;height:30px;"></div>
  53.         <div style="margin-top:50px;font-size:12px;color:#666;">
  54.                 本页代码来自<a href="http://www.jiankongbao.com/" target="_blank"><span style="color:#333;">监控宝</span></a>
  55.         </div>
  56. <script>

  57. var id = '1';
  58. var url = '<?php echo $testurl; ?>';
  59. var data = [];
  60. var max = 3;
  61. var proc = {0:25,1:50,2:75,3:100};

  62. loader(0);
  63. function loader(times)
  64. {
  65.         if (times > max)
  66.         {
  67.                 post();
  68.                 return;
  69.         }
  70.         var img_url = url + "?cc=" + Math.floor(100000*Math.random());
  71.         var date = new Date();
  72.         var start = date.getTime();
  73.         var img = document.createElement("img");
  74.         img.src = img_url;
  75.         img.onload = function()
  76.         {
  77.                 date = new Date();
  78.                 var end = date.getTime();
  79.                 var diff = end - start;
  80.                 data[times] = diff;
  81.                 document.getElementById('process').style.width = proc[times] + '%';
  82.                 loader(times + 1);
  83.         };
  84.         document.getElementById('loader').appendChild(img);
  85. }
  86. function post()
  87. {
  88.         var d = [];
  89.         var s = 0;
  90.         var len = data.length;
  91.         for (i = 0; i < len; ++i)
  92.         {
  93.                 var o = 0;
  94.                 for (j = 0; j < len; ++j)
  95.                 {
  96.                         if (j != i)
  97.                                 o += data[j];
  98.                 }
  99.                 if (data[i] != 0 && data[i] < o * 2)
  100.                 {
  101.                         d.push(data[i]);
  102.                         s += data[i];
  103.                 }
  104.         }
  105.         if (d.length == 0)
  106.         {
  107.                 return
  108.         }
  109.         var lt = s / d.length;
  110.        
  111.         var img = document.createElement("iframe");
  112.         img.src = '<?php echo $rurl; ?>?id=' + id + '&ref=' + encodeURIComponent(document.referrer) + '&loadtime=' + lt;
  113.         document.getElementById('loader').appendChild(img);
  114.        
  115.         document.getElementById('__tips').innerHTML = '收集成功! 感谢您的参与。';
  116.         document.getElementById('__close').innerHTML = '<input type="button" class="btn" value="关闭" onclick="window.close();" /> <input type="button" class="btn" value="重新测试" onclick="window.location.reload();" />';
  117. }
  118. function trace(json)
  119. {
  120.         json = eval('(' + json + ')');
  121.         if (!json.ip)
  122.                 return;
  123.         document.getElementById('__result').innerHTML = 'IP地址: ' + json.ip + '<br />所在地: ' + json.zone_name + '<br />网络接入商: ' + json.isp_name + '<br />耗时: ' + json.load_time + '毫秒<br />速度评价: ' + json.level + '';
  124. }
  125. </script><?php
  126. }

  127. ?>
复制代码
发表于 2010-9-11 10:45:30 | 显示全部楼层
不需要~不过sofa还是要的~
发表于 2010-9-11 12:25:50 | 显示全部楼层
谢谢大大分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2024-5-19 20:24 , Processed in 0.030528 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表