Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
Php 每当浏览器加载图标处于活动状态时显示加载图标_Php_Javascript_Html_Ajax_Browser - Fatal编程技术网

Php 每当浏览器加载图标处于活动状态时显示加载图标

Php 每当浏览器加载图标处于活动状态时显示加载图标,php,javascript,html,ajax,browser,Php,Javascript,Html,Ajax,Browser,这可能有点牵强,但我想知道这是否可能 我正在一个使用PHP作为后端的网站上工作。问题是,我运行的一些PHP脚本相当长,可以转换为持续几秒钟的页面加载时间 理想情况下,无论何时加载页面,我都能够显示加载图标,但情况因页面而异: 在某些情况下,第一次加载页面 在其他情况下,在提交相同的页面表单后重新加载页面 有时,表单由页外脚本处理,然后重定向回表单所在的页面(在这些情况下,由于外部脚本中没有任何内容,用户不知道脚本正在其他地方处理,因为页面内容没有更改) 我知道,根据触发器的不同,在每种情况下

这可能有点牵强,但我想知道这是否可能

我正在一个使用PHP作为后端的网站上工作。问题是,我运行的一些PHP脚本相当长,可以转换为持续几秒钟的页面加载时间

理想情况下,无论何时加载页面,我都能够显示加载图标,但情况因页面而异:

  • 在某些情况下,第一次加载页面
  • 在其他情况下,在提交相同的页面表单后重新加载页面
  • 有时,表单由页外脚本处理,然后重定向回表单所在的页面(在这些情况下,由于外部脚本中没有任何内容,用户不知道脚本正在其他地方处理,因为页面内容没有更改)
我知道,根据触发器的不同,在每种情况下都会显示加载图标,但无法找到一种通用解决方案,即在页面加载时(无论触发器如何)都会显示图标

我注意到一些浏览器在页面加载时会在图标的位置显示一个加载图标(或者,至少谷歌浏览器会这样做)。是否可以知道浏览器加载图标何时处于活动状态并同时显示页面加载图标


如果没有,我们将非常感谢任何替代解决方案。

缓冲

如果您的PHP脚本导致加载缓慢,您必须将它们放入缓冲区。因此,加载完成后,可以释放此缓冲区

这并不难实现

请参阅PHP输出缓冲控制文档了解以下信息:


已完成缓冲区的加载

你可以这样做:

在您的页面中,尝试删除
$(窗口)中的注释行。加载()
函数并注释最后一行
hideLoading()


检测浏览器的活动

我注意到一些浏览器在页面加载时会在图标的位置显示一个加载图标(或者,至少谷歌浏览器会这样做)。是否可以知道浏览器加载图标何时处于活动状态并同时显示页面加载图标

你可以尝试另一种选择。您可以检测网络活动。这是更复杂的实现,但更有趣,主要是如果你想要一个移动的方法


,可以提供帮助。

您知道何时加载、重新加载和处理页面,以便设置加载动画,并在加载完成后将其删除?您可以始终在页面中显示加载图标。使用
window.onload
删除它。我的问题不在于为每个案例创建一个解决方案,而是搜索一个通用的解决方案:)如果只需等待页面内容加载即可,但在我的例子中,延迟是由在内容本身尝试加载.PHP输出缓冲控制之前执行的PHP脚本造成的。请参阅此答案的版本。
    $(window).load(function () {
        //hideLoading();
    });

    hideLoading = function() {
        $('.loading').fadeOut(2000, function() {
            $(".content").fadeIn(1000);        
        });
    };

    hideLoading();