如何预加载文档并仅在浏览器完成从服务器加载数据时在屏幕上显示它
How to preload a document and presenting it on screen only when the browser finish loading data from server
是否有一种方法可以在所有文档,DOM,图像,AJAX调用,对象和其他东西完成加载时同时在屏幕上显示所有内容?
当浏览器从服务器获取信息时,这不是显示它们的"局部"。
将所有内容设置为display:none;
,直到jQuery AJAX success()
方法触发,然后可以将display
属性设置为正常
另外,确保AJAX代码位于window.onload
或$(window).on('load')
处理程序内部。
这样做的缺点是,如果Ajax调用不成功,您的页面将无法显示,因此您还应该在jQuery中定义Ajax error()
方法。
显示加载完成的图片(放在onload之外):
$('img').each(function()
{
$(this).css('display','none');
$(this).on('load',function(){$(this).css('display','');});
});
此外,您还需要显示某种类型的加载符号以改善用户体验。
你可以试着用覆盖来隐藏页面,就像这个插件
快速和容易。
使用@timss的答案试试这个:
设置正文为visibility: hidden
jQuery(window).load(function () {
$("body").css({"visibility":"visible"});
});
找到此来源:优先加载网页中的内容他声称在显示之前会预加载整个页面。
<script language="javascript" type="text/javascript">
/* Visit http://www.yaldex.com/ for full source code
and get more free JavaScript, CSS and DHTML scripts! */
<!-- Begin
function loadImages() {
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById('hidepage').style.visibility = 'hidden';
}
}
window.onload = loadImages;
// End -->
</script>
<div id="hidepage" style=" background-color: #FFFFCC; layer-background-color: #FFFFCC; width: 100%;">
<table width=100%><tr><td>Page loading ... Please wait.</td></tr></table></div>
我的解决方案:
这是如何做的一个粗略的草案,但如果你最终确定它就可以了。优先考虑所有内容加载的顺序。使用onload jsHide函数
<DIV ID="idElement2"><IMG SRC="Airplane.gif"> onLoad="javascript:jsHide('idElement2');return true"></DIV>
<DIV ID="idElement5"><IMG SRC="stuff.gif" onLoad="javascript:jsShow('idElement5');jsShow('idElement3');jsShow('idElement4');return true"></DIV>
设置idelement5为最后加载,加载后将显示所有其他元素的id
window.onload = function () {
alert("Page loaded!")
}
相关文章:
- 正在等待呈现图表,直到加载数据为止
- ng绑定和ng href问题.ng href未从控制器加载数据
- 单击按钮时加载数据
- 在reactjs组件中预加载数据
- Highcharts可以从服务器加载数据,但不能更新
- AngularJS promise在加载数据之前得到解决
- 在Knockout JS中搜索从DB加载数据的项目
- 如何在angular js中使用$emit后重新加载数据
- 构建多个图表时,HighCharts加载数据的速度较慢
- 加载初始网站后在后台加载数据
- ExtJS网格未从Ext.data.XmlStore加载数据
- 数据表 AJAX 筛选器重新加载数据
- select2 使用 AJAX 加载数据不能选择任何选项
- 在 Metro 风格应用中启动时加载数据
- 需要帮助使用 AJAX 和其他一些东西加载数据
- Vue 不加载数据
- 向右滚动加载数据
- 为SEO的数据绑定JS预加载数据
- mysql循环-预加载数据
- 无法使用JSON加载数据表