Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Javascript 在文档未准备好时显示加载_Javascript_Jquery - Fatal编程技术网

Javascript 在文档未准备好时显示加载

Javascript 在文档未准备好时显示加载,javascript,jquery,Javascript,Jquery,我想向用户展示他想要访问的文档 正在加载,尚未准备好 我想在网页完全加载时显示它 我用 $(document).ready(function(){}); 文件准备就绪。对于我的方法,我应该做些什么?在代码的开头用加载文本/动画编写一些元素,然后在文档准备就绪时用javascript删除或隐藏该元素。可能需要一些输出缓冲来立即显示加载消息 $(function() { $("#loading_element").hide(); }); 首先要做的是询问为什么页面加载速度如此之慢,以至于

我想向用户展示他想要访问的文档 正在加载,尚未准备好

我想在网页完全加载时显示它

我用

$(document).ready(function(){});

文件准备就绪。对于我的方法,我应该做些什么?

在代码的开头用加载文本/动画编写一些元素,然后在文档准备就绪时用javascript删除或隐藏该元素。可能需要一些输出缓冲来立即显示加载消息

$(function() {
    $("#loading_element").hide();
});

首先要做的是询问为什么页面加载速度如此之慢,以至于您觉得需要一个加载横幅,并尽您所能解决这个问题

如果由于所讨论页面的性质而无法修复此问题,那么下一个需要考虑的问题是确保“加载”横幅只出现在启用了JavaScript的用户身上(因为我们稍后将使用JavaScript将其删除,因此如果他们没有JavaScript,则将其放在那里,然后不删除它会有点小气)。这可能是
文档剩下的少数有效用法之一。编写
语句(并且仅当您没有使用XHTML时,因为它在XHTML中无效):

然后在
ready
处理程序中,将其删除:

$('#loading').remove();

如果您使用的是XHTML(或者您只是不想使用
document.write
),那么您可以在不使用
document.write的情况下执行类似操作

<body>
<script>
    (function() {
        var p = document.createElement('p');
        p.id = 'loading';
        p.innerHTML = "Loading...";
        document.body.appendChild(p);
    })();
</script>

(功能(){
var p=document.createElement('p');
p、 id='加载';
p、 innerHTML=“正在加载…”;
文件.正文.附件(p);
})();

(在Windows上测试IE6/7/8;在Windows上测试Safari;在Linux和Windows上测试Chrome、Opera和Firefox。)

这涉及到编写一个小型引导系统。历史上,人们是通过(i)帧来实现这一点的。然而,一种可能的解决方案是在隐藏元素内输出时写入可见的加载程序元素,然后在加载后切换可见性。
$('#loading').remove();
<body>
<script>
    (function() {
        var p = document.createElement('p');
        p.id = 'loading';
        p.innerHTML = "Loading...";
        document.body.appendChild(p);
    })();
</script>