并发preloader加载条

var progress;
var current_loading = 0;
var loaded_size = 0;
var loaded_num = 0;
//控制最大并发数
var max_sessions = 8;
var live_sessions = 0;
//记录请求对象重载次数
var reload_times = new Array();
var stopped = false;

//set up ajax option
$.ajaxSetup({
   type: 'GET',
   //异步调用
   async: true,
   //发送之前执行
   beforeSend: function(XMLHttpRequest){before_ajax_send(XMLHttpRequest);},
   //允许从浏览器缓存读取
   cache: true,
   //请求完成时执行(包含成功失败)
   complete: function(XMLHttpRequest, textStatus){ajax_complete(XMLHttpRequest, textStatus);},
   //错误时执行
   error: function(XMLHttpRequest, textStatus, errorThrown){ajax_error(XMLHttpRequest, textStatus, errorThrown);},
   //是否触发全局 AJAX 事件
   global: true,
   //是否仅在服务器数据改变时获取新数据
   ifModified: false,
   //是否将发送的数据将被转换为对象
   processData: false,
   //成功后执行
   success: function(data, textStatus) {ajax_success(data, textStatus);},
   //超时设置:10秒
   timeout: 10000
});

function before_ajax_send(XMLHttpRequest)
{
   
}
function ajax_complete(XMLHttpRequest, textStatus)
{
   if(textStatus == 'success'){
       //processbar
       loaded_size += XMLHttpRequest.responseText.length;
       progress.style.width = progress.innerHTML = Math.floor(loaded_size / total_size * 100) + '%';
       //add up to the loaded
       ++ loaded_num;
       -- live_sessions;

       //all loaded?
       if (loaded_num >= preloader_queue.length)
       {
           location.href = '?_task=mail';
           return true;
       }else{
           if(preloader_queue[current_loading] != undefined){
               var url = preloader_queue[current_loading].src;
               $.get(url, null ,null,'text');
               ++ current_loading;
           }
       }
   }
}
function ajax_error(XMLHttpRequest, textStatus, e)
{

}
function ajax_success(data, textStatus)
{

}

window.onload = function ()
{
   progress = document.getElementById('progress');

   //设定错误处理,重新加载3次
   $(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
       if( reload_times[ajaxOptions['url']] == undefined ){
           reload_times[ajaxOptions['url']] = 0;
       }
       if( reload_times[ajaxOptions['url']]++ < 3 ){
           $.get(ajaxOptions['url'], null ,null,'text');
       }else{
           if(!stopped){
               stopped = true;
               alert("Loading failed. Please try it again later!");
           }
       }
   });   

   //轮询加载至最大并发数
   while(preloader_queue[current_loading] != undefined && live_sessions < max_sessions){
       var url = preloader_queue[current_loading].src;
       $.get(url, null ,null,'text');
       ++ current_loading;
       ++ live_sessions;       
   }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Preloader分区是安卓系统中的一个分区,用于存储系统启动所需的预加载器文件。它位于底层存储设备的特定位置,负责引导系统的初始化过程。 Preloader分区的主要作用有以下几个方面: 1. 引导系统:Preloader分区中存储着引导加载程序,它是系统启动的重要组成部分。当我们打开安卓设备时,引导加载程序从Preloader分区中读取必要的文件和设置,然后开始加载操作系统。 2. 系统初始化:Preloader分区中还包含了系统的初始化程序和相关的配置文件。这些程序和文件用于初始化设备的硬件和软件环境,确保系统的正常运行。 3. 提供系统修复:如果设备发生了一些严重的故障,比如刷机失败或损坏系统文件,Preloader分区可以提供一种快速修复的方法。通过使用恢复模式或者刷入预加载器文件,可以修复设备的软件问题,恢复系统的正常运行。 需要注意的是,修改Preloader分区需要谨慎操作。错误的操作可能导致设备无法正常启动或者变得不稳定。因此,在修改Preloader分区之前,最好备份重要数据,并且确保所使用的预加载器文件是正确的,以防出现意外情况。 总结来说,Preloader分区是安卓设备中的一个重要分区,存储着引导加载程序和系统初始化所需的文件和设置。它在系统启动过程中发挥着重要的作用,并提供了一种修复设备的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值