在显示任何内容之前,如何强制页面加载所有内容?

时间:2010-09-03 07:58:13

标签: php performance

我想在显示任何内容之前强制我的页面加载所有数据...

这是我的网站: http://vinarakar.si/sl/

我想在php中这样做,但我愿意接受其他建议:)

感谢您的帮助

6 个答案:

答案 0 :(得分:3)

你需要使用Javascript,而不是PHP。

PHP是一种服务器端语言,因此一旦输出发送到浏览器,它就无法改变用户体验。

尝试这样的事情,使用身体的visibility: hidden从头开始隐藏它。然后,一旦页面加载(我认为),onload()将被触发,然后将其设置为visibility: visible

 <body style="visibility:hidden" onload="this.style.visibility = 'visible' ">

这里更大的问题是为什么哦为什么!这只是意味着用户必须等待更长时间才能开始使用您的网站?它不是一个大的站点,它没有大量的Js库需要在用户开始使用该站点之前加载。

答案 1 :(得分:3)

我可以提出你不喜欢的建议吗?

如果您真的希望自己的页面显示得更快,那么请减少JavaScript噱头。您包含 13 JavaScript文件,并且大部分时间加载都会丢失,无法初始化。

更重要的是,没有JavaScript的用户会完全破坏您的网页。

答案 2 :(得分:1)

请注意,以任何方式使用javascript可能不适用于每个访问者完全相同。您应该使用跨浏览器的JS引擎,如jQuery或MooTools。

这样,您至少可以尝试跨浏览器有效。

其次,由于我已经说过,我不建议你使用jakenoble给你的解决方案。如果用户因任何原因禁用了JS,他将永远无法看到您的页面。

如果您希望已禁用JS的用户查看您的网站,则必须使用JS隐藏和显示您的网页。使用整页覆盖可能是一种很好的方法,但一定要检查你的页面是否仍然有效,而不需要激活JS。

e.g。您可以将CSS代码写入标记中,如果用户已禁用JS,则会隐藏覆盖并显示页面。

一些代码示例

<body class="body">
 <div class="overlay">
 <!-- Your page content -->
 </div>
</body>

<script type="text/javascript">
 $(document).ready(function(){
  $(".overlay").css("visibility", "hidden");
  $(".body").css("visibility", "visible");
 });
</script>

<noscript>
 <style type="text/css">
  .body { visibility: visible; }
  .overlay { visibility: hidden; }
 </style>
</noscript>

答案 3 :(得分:0)

你实际上需要CSS,你必须放一个隐藏内容的整页覆盖(也许它会显示“加载”以使用户意识到页面正在加载),然后隐藏onload以便它的内容下面。看看the solution here

答案 4 :(得分:0)

实际上你可以通过使用Ajax来实现这一点。

考虑是否必须加载index.php只需编写body标记并在body load上调用Ajax函数并在body标记内部获取Ajax响应。使用此练习将花费两倍的时间来加载页面。

答案 5 :(得分:0)

简短回答,请勿延迟

首先,我会反对它。我们生活在互联网上一个节奏非常快的社区。如果你花很长时间来展示网站(或者用户感觉没什么事情发生),他们可能会离开。这将对你想要完成的事情产生不利影响。

最好问:如何加快网站的网页加载速度?

更好的问题是How do I speed up my website?以下是一些可以帮助您的建议。请遵循以下准则以提高性能。 http://developer.yahoo.com/yslow/help/