问题是,网站加载大约20秒或更长时间(用户问题预编程) 我的解决方案是加载用户看到加载屏幕的预先站点。 我用这个html网站做了这个,但我想在php中做同样的事情。 测试页面为http://kater.selfhost.me/test/
源代码:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript">
window.onload = function() {
document.getElementById("siteLoader").style.display = "none";
document.getElementById("container").style.display = "block";
}
</script>
</head>
<body>
<div id="container" style="display:none">
<div id="body">
<iframe src="http://kater.selfhost.me/stats/skins.php" frameborder="0" height="2000px" width="1024px"></iframe>
</div>
</div>
<div id='siteLoader'>
<div id='siteDetailLoader'>
<img src='ajax_loader.gif' border='0'>
Please wait while the page loads...<br /> <br />
</div>
</div>
</body>
</html>
我尝试了一些解决方法,但经过搜索&amp;测试大约三个小时我放弃了...... 提前感谢您提供的任何帮助! :-D
答案 0 :(得分:0)
添加我在你的问题评论中所说的内容,我制作了一个代码,通过AJAX加载这个内容:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
//Load content
loadAjaxContent();
});
function loadAjaxContent()
{
//VERY IMPORTANT: the URL domain MUST HAVE be the same as your request
//that's why I'm not writting the full http://kater.selfhost.me/stats/skins.php
$.ajax({
url: "/stats/skins.php"
}).done(function(data) {
//remove loader
$("#siteLoader").hide();
//put PHP content
$("#ajaxContent").html(data);
});
}
</script>
</head>
<body>
<div id="body">
<div id="ajaxContent" style="width:1024px;"></div>
<div id='siteLoader'>
<div id='siteDetailLoader'>
<img src='ajax_loader.gif' border='0' />
Please wait while the page loads...<br /> <br />
</div>
</div>
这是在Web中加载异步内容的最常用方法。但请注意:http://kater.selfhost.me/stats/skins.php
页面在网页中以单页打开,因此它包含<html>
,<head>
,<body>
等标记,所以..在将此页面加载到另一个页面后,您将在同一页面中有两个<html>
,<body>
..标签,这很糟糕,但现代浏览器具有很棒的常识而且不用费心通过这个,你应该知道,并注意。
为什么它尚未加载的实际问题,是您的内容中的这个javascript:
<script type="text/javascript"><!--
EXref="";top.document.referrer?EXref=top.document.referrer:EXref=document.referrer;//-->
</script>
我删除了它,现在工作正常。请记住,这是一个快速解决方案,我不知道这个JS做了什么。
为什么它在<iframe>
中起作用而不是通过AJAX?当您在<iframe>
中打开时,就像在新的浏览器窗口中打开一样...并且通过AJAX,正如我所说,它会将页面内容直接加载到“父”页面中。
因此,删除此Javascript将起作用,但是可以使用更好的解决方案:
如果您需要打开此页面作为要加载的内容(通过AJAX),作为单页,您可以制作两个页面..每个需要一个页面。
如果您只想用作要加载的内容,请移除<html>
,<head>
等标签,并修复Javascript以在其他网页内工作。