Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
意外的Safari页面加载计数行为 客户 Mac OS 10.15.3 服务器 Ubuntu 18.04.4 Apache 2.4.29 PHP7.4.5_Php_Apache_Safari - Fatal编程技术网

意外的Safari页面加载计数行为 客户 Mac OS 10.15.3 服务器 Ubuntu 18.04.4 Apache 2.4.29 PHP7.4.5

意外的Safari页面加载计数行为 客户 Mac OS 10.15.3 服务器 Ubuntu 18.04.4 Apache 2.4.29 PHP7.4.5,php,apache,safari,Php,Apache,Safari,获取一个脚本,将其命名为/test.php。让我们跟踪每个用户体验的可视页面加载实际发生的页面加载数量 # Count = 1 test.php?v=1 # Count = 2 test.php?v=1 # Count = 4 (???) test.php?v=2 # Count = 7 (???) test.php?v=1 # Count = 8 test.php?v=1 # Count = 10 (???) test.php?v=3 # Count = 11 test.php?v=3 #

获取一个脚本,将其命名为/test.php。让我们跟踪每个用户体验的可视页面加载实际发生的页面加载数量

# Count = 1
test.php?v=1
# Count = 2
test.php?v=1
# Count = 4 (???)
test.php?v=2
# Count = 7 (???)
test.php?v=1
# Count = 8 
test.php?v=1
# Count = 10 (???)
test.php?v=3
# Count = 11
test.php?v=3
# Count = 15 (???)
test.php?v=2
# Count = 18 (???)
test.php?v=1
在Chrome中,负载的数量与预期一样-1、2、3,然后是4、5等

此外,如果您在私有窗口中执行此操作,Safari的行为与Chrome的行为一样符合预期

为什么Safari会这样?堆栈中是否有其他方面的贡献,例如Apache或PHP

编辑1 一个较小测试用例的Apache日志(!!!)test.php?v=3被记录,尽管我不是故意请求的

# Procedure
test.php?v=1
test.php?v=1
test.php?v=2
编辑2 下面是test.php的精简内容。需要Redis和PHP Redis,因为我正在使用它来快速可视化。当然,如果愿意,您可以使用Apache日志,也可以使用任何其他方式快速查看脚本的执行次数

<?php 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

echo $redis->incr('counter');

这里没有足够的信息。
test.php
在做什么?您是否查看了Apache日志以了解页面负载的确切数量?你看过浏览器中的NetworkDeveloper选项卡了吗?test.php是一个空白页面,上面有一些MySQL和Redis日志,以确保我不会发疯。您可以从我在编辑中输入的Apache日志示例中看到(感谢您提出的澄清),Safari甚至调用了test.php?v=3,我以前访问过它,但不是按照这个顺序。我怀疑这是由于Safari进行了一些优化,以加快将来的加载,因为它不是在私有模式下发生的。还有更多的理由尊重HTTP动词的含义吗?因为这意味着如果有人将非GET功能放在GET路径中,可能会发生真正不受欢迎的行为。这里没有足够的信息。
test.php
在做什么?您是否查看了Apache日志以了解页面负载的确切数量?你看过浏览器中的NetworkDeveloper选项卡了吗?test.php是一个空白页面,上面有一些MySQL和Redis日志,以确保我不会发疯。您可以从我在编辑中输入的Apache日志示例中看到(感谢您提出的澄清),Safari甚至调用了test.php?v=3,我以前访问过它,但不是按照这个顺序。我怀疑这是由于Safari进行了一些优化,以加快将来的加载,因为它不是在私有模式下发生的。还有更多的理由尊重HTTP动词的含义吗?因为这意味着,如果有人将非GET功能放在GET路径中,可能会发生真正不受欢迎的行为。
<?php 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

echo $redis->incr('counter');