有意降低HTML/PHP页面加载速度以进行测试

有意降低HTML/PHP页面加载速度以进行测试,php,javascript,jquery,testing,load-testing,Php,Javascript,Jquery,Testing,Load Testing,我很好奇是否有一种方法可以故意减缓页面加载 我现在正在本地主机上测试我的HTML和PHP页面,我想看看当页面加载较慢时,加载gif etc的效果如何 我意识到这是一个罕见的请求,因为大多数开发人员只关心加速页面加载,但我认为可能有一种方法,使用javascript/jQuery或PHP来做类似的测试 谢谢你的帮助 注意:我在MAMP上进行测试,所以这是运行在Mac OS 10.7上的Apache服务器,一点JS setTimeout就可以做到这一点 setTimeout(function() {

我很好奇是否有一种方法可以故意减缓页面加载

我现在正在本地主机上测试我的HTML和PHP页面,我想看看当页面加载较慢时,加载gif etc的效果如何

我意识到这是一个罕见的请求,因为大多数开发人员只关心加速页面加载,但我认为可能有一种方法,使用javascript/jQuery或PHP来做类似的测试

谢谢你的帮助


注意:我在MAMP上进行测试,所以这是运行在Mac OS 10.7上的Apache服务器,一点JS setTimeout就可以做到这一点

setTimeout(function()
{
    // Delayed code in here
    alert('You waited 5 seconds to see me'); // Waits 5 seconds, then alerts this
}, 5000); // 5000 = 5 seconds
您可以使用:


...
这里是html
...
调用您的PHP代码来延迟对服务器的请求。

您可以使用PHP函数来降低页面加载速度。但是,您需要使用
ob\u implicit\u flush(true)进行切换如果希望在处理页面之前将任何内容发送到用户的浏览器。否则,在加载完成之前,页面将不会有任何内容。单靠打电话睡觉是不行的。

这就是我要尝试的: 使用php资源作为图像源:

<img src="images/gifLoager.php" />
在输出二进制数据之前,不要忘记适当地设置标题

参考资料:

http://stackoverflow.com/questions/1563069/stream-binary-file-from-mysql-to-download-with-php
http://php.net/manual/en/function.sleep.php
http://www.gamedev.net/topic/427622-php-and-file-streaming-script-with-resume-capability/
更新2015-04-09 使用Chrome“设备模式”: 此工具具有网络限制功能,允许您查看页面在网络带宽较慢的设备上的呈现方式。它还有许多其他功能,允许您模拟各种设备上的功能,如屏幕大小和触摸

您可以使用来降低连接速度(它是JAVA语言,因此可能会在您的devel机器上运行。如果您想了解浏览器如何响应缓慢的HTML加载(例如,动态大小的HTML表等),您可能还需要关闭mod_deflate以进行测试)

另外,请参阅网站管理员。stackexchange.com

的想法是正确的。测试页面加载速度慢的最佳方法是使用Chrome的开发工具。选择“网络”选项卡,然后单击“无限制”下拉列表。然后将页面更改为所需的速度

这种方法优于使用sleep函数,因为您不必弄乱任何代码,然后记得将其取出。如果您想更改速度,只需更改节流级别即可


有关节流的详细信息。

在Chrome中,您可以使用开发人员工具模拟缓慢的Internet连接。在最右侧的“网络”选项卡下。您可以使用“Fast G3”之类的预设,也可以创建自己的精确数字,以便上传、下载和ping



参考资料:

好吧,你可以用3200波特的调制解调器替换你的网络连接……如果你想减缓每一个请求(包括图像),这必须在服务器或操作系统级别;你使用的是哪一个服务器/操作系统?@mblase75-+1和幽默感的道具;)@arnaud576875-我使用的是MAMP,这就是Apache,Mac OS 10.7有点令人毛骨悚然,一个名字和我差不多的人同时回答了这个问题,哈哈@Joe-这似乎是最简单的,只要它能起作用。我应该怎样包装
setTimeout()
呢?当然可以:P把它放在
这里的代码中
然后任何你想延迟的东西,都放在“这里延迟的代码”注释的地方。请参阅修改后的文章以了解基本示例。例如,假设您的加载GIF在默认情况下是可见的,那么将代码隐藏在超时时间内,它将等待5秒钟,然后隐藏加载GIF。@Joe-哦,我明白您的意思。这不就是推迟删除加载gif吗?它并不是真的模仿缓慢的页面加载,是吗?好吧,这真的取决于你如何设置它:)如果你有在页面加载上运行的JS,你可以把它放在延迟内,稍后再执行。如果您希望暂停PHP脚本的完成,那么您需要像Cyclone提到的那样
sleep
。两者都是对的,这只是你想用哪种方式来做:)很好的答案。我来看看你提供的链接。我确信这个问题在链接中得到了回答,但是是
ob\u implicit\u flush(true)
php.ini的一部分
?没关系,我应该先检查链接。它在PHP文件本身中调用。谢谢,我要试一试!没问题!让我知道这是怎么回事。这听起来像是一个非常有创意的方法,我喜欢它。但是我想知道:这会不会延迟加载gif图像本身的加载?我想通过延迟页面内容的加载来测试加载程序gif和其他加载程序设置;不是加载程序本身。然而,我想,我可以很容易地更改您的代码,以延迟页面上一个或多个图像的加载;因此延迟页面加载和演示加载gif等等。我说得对吗?你说得对。我想我误解了你的问题。我的回答更倾向于延迟图像的加载。但是,您可以对任何其他资源使用相同的概念。这显然是一个黑客行为。更好的方法是使用“网络仿真器”。这些工具非常常见,它们允许您模拟低带宽网络。见:。谢谢。我已经对此进行了调查,除非我弄错了,否则在您提供的链接中提供的资源都不是为Mac提供的。你知道一个好的开源网络仿真器吗?您知道MAMP中是否有一种方法,或者MAMP的附加组件,可以模拟慢速网络连接或高流量?请参阅本文中的参考资料:这是一个很好的特性。。。!Firefox在网络下也有类似的功能。默认情况下,有一个下拉列表说“No throttling”,但您可以通过选择其他选项故意降低页面速度。
$fp = fopen( $path, 'rb');
while(!feof($fp)) {
        print(fread($fp, 1024));
        flush();
        Sleep(1);
     }
fclose($fp);
http://stackoverflow.com/questions/1563069/stream-binary-file-from-mysql-to-download-with-php
http://php.net/manual/en/function.sleep.php
http://www.gamedev.net/topic/427622-php-and-file-streaming-script-with-resume-capability/