页面显示前如何运行一些代码

时间:2019-05-29 08:28:04

标签: javascript jquery html

在将页面加载到jquery或js中之前,我无法运行一些代码。我做的任何页面加载都会很短暂,然后我的代码就会运行。我在用户看到页面之前运行了代码,但是它在短毫秒内加载,然后我的代码开始运行。

我已经做了一些解决方案,但没有做我想做的事情:

  • 我已将代码放在document.ready之前
  • 我已将代码放在头部
  • 我已将代码放入一个函数中,然后在head标签中称为该函数
  • 我也在js中尝试过onload()

但结果相同:我的代码在毫秒后运行,并且用户在这些毫秒内运行代码之前先查看页面

有什么想法吗?

5 个答案:

答案 0 :(得分:1)

您可以通过document.readyState将代码置于文档的“加载”状态,但是在此状态下DOM尚未准备就绪。这里有您如何使用document.readyState https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState#Different_states_of_readiness的示例,您实际上想做什么?

答案 1 :(得分:1)

<head>中的脚本将在此之前运行,但是无法访问页面上的元素。 试试这个代码

   <body>
    <script type="text/javascript">
        alert("After click ok you'll see the page content!!!");
    </script>
    rest of the page
</body>

答案 2 :(得分:0)

您不应该在<head>中输入任何代码 我的建议是使用加载程序,因此使用CSS display:none使body标签不可见 因此您的代码将像页面尚未加载一样运行。 然后您添加$(document).ready({$('body').css('display','block')})

答案 3 :(得分:0)

从隐藏正文开始,并在执行代码后显示它。

<html>
...
<body style='display:none'>
  ...
  <script>
    $(document).ready( function() {
       ...
       $(document.body).show();
    })
  </script>
</body>
</html>

答案 4 :(得分:-2)

jQuery和Javascript是客户端语言,在页面加载时由浏览器读取。

通常,我们会使用类似的东西:

$(document).ready(function(){
    //do stuff
});

这是为了确保在运行JS函数之前已将元素加载到屏幕上,以确保已加载脚本所需的任何元素。

您似乎正在做的事是在页面加载的同时运行脚本,因此脚本中可能有某些内容阻止HTML的其余部分在运行时加载,这就是为什么看到加载时间的原因

您应该看一下PHP。 (超文本预处理器)这是服务器端语言,而不是客户端。因此,它会预处理您想要的服务器端内容,然后将其发送给用户客户端/浏览器。

签出http://www.developphp.com/