Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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
Php Loader,它还显示网页的加载百分比_Php_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Php Loader,它还显示网页的加载百分比

Php Loader,它还显示网页的加载百分比,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,我的网站上有一个加载器,在显示任何文本、图片和其他内容之前,它会加载网页的所有照片。因此,我将背景代码、主包装(带设计)等与页面中的所有图像放在一起(style=“width:0;height:0;visibility:hidden;”和其他使它们不可见的东西)。说到这里,我放了一句话,上面写着 HTML: 装载 Javascript: 函数加载() { document.getElementById('main-wrapper').innerHTML=“我想要的文本 } 这使得我希望在加

我的网站上有一个加载器,在显示任何文本、图片和其他内容之前,它会加载网页的所有照片。因此,我将背景代码、主包装(带设计)等与页面中的所有图像放在一起(
style=“width:0;height:0;visibility:hidden;”
和其他使它们不可见的东西)。说到这里,我放了一句话,上面写着

HTML:


装载

Javascript:

函数加载()
{
document.getElementById('main-wrapper').innerHTML=“我想要的文本
}
这使得我希望在加载所有图像后显示文本。现在我在.innerHTML=“”;)中写入我想要的内容没有问题


请告诉我一种方法,这样我也可以使用任何编码语言来告诉加载的百分比。请告诉我是否有更好的方法,但同时告诉加载的百分比。

一个简单的解决方案,只计算图像的数量,而不考虑图像的大小(只是一个简单的示例…):

函数加载页(html){
//html包含要添加到#主包装器的html
//将html放在一个元素中以计算其中的图像
var el=$(“”).html(html);
var imgCount=el.find(“img”).长度;
var计数=0;
风险值百分比=0;
$(“img”,el).load(函数(){
计数++;
如果(imgCount==计数){
$(“#主包装器”).html(html);
}否则{
百分比=(计数/计数)*100;
$(“#主包装器”).html(“加载(“+百分比+”)…”;
}
});
}

在加载之前获取图像大小是很困难的;我最近没有尝试过,但是在firefox中很容易获取图像大小,但在webkit中无法获取图像大小。

您希望显示的百分比是多少?加载的片段/片段,还是加载的片段/全部片段?您可以从不同的角度进行处理,然后加载所有片段使用AJAX调用的图像,通过这种方式,您可以保持加载过程的轨迹,并在加载完毕后将其移动到位。整个网页的加载百分比。在这种情况下,您必须计算服务器端的所有图像大小,如果可能,还可以添加html大小。加载页面时,使用AJAX调用加载图像(最好使用jQuery,在每个图像上都可以使用它),一个接一个,当你要求下一张图片时,你也会将百分比值与下一张图片的url一起从服务器传回。然后听加载的事件,并进入循环,直到达到100%抱歉,但我不知道我的图片的服务器端大小和html是多少。另外,对于你正在谈论的调用,请elabo使用脚本编写urate,以便jQuery的新手能够理解它。@jeroen同时给出了一个非常好的例子,这也应该是我的例子(在逻辑部分,el.find(“img”).length中的“length”是什么意思?@X Phoenix
el.find(“img”)
查找所有图像,
length
提供找到的图像总数。正如您怀疑浏览器支持是否属实(请告诉我我可以测试)。这种方法是否给出了示例。如果有10个IMG,2个已加载,百分比=20%。@X Phoenix 7这可以跨浏览器工作,获得图像的大小(是否?)不是,但我没有用那个。
<body onLoad="load()">
<div class="main-wrapper" id="main-wrapper">
     <p>Loading.....</p>
</div>
<img src="xxxxx" class="hidden">
<img src="xxxxx" class="hidden">
<img src="xxxxx" class="hidden">
<img src="xxxxx" class="hidden">
function load()
{
document.getElementById('main-wrapper').innerHTML = "Text I Want <img src="x"";>
}
function loadPage(html) {
  // html contains the html to add to #main-wrapper

  // put the html in an element to count the images in it
  var el = $("<div>").html(html);
  var imgCount = el.find("img").length;
  var count = 0;
  var percentage = 0;

  $("img", el).load(function() {
    count++;
    if (imgCount === count) {
      $("#main-wrapper").html(html);
    } else {
      percentage = (count / imgCount) * 100;
      $("#main-wrapper").html("loading ("+ percentage + "%) ...");
    }
  });
}