|
android的webAPP开发中,如果使用载入远程服务器的html页面来实现的方式,会牵涉到第一次加载出现白屏或者长时间等待的问题;那么在这个时候需要提升用户体验,需要在加载远程html\javascript\css\image等文件的时候,现实Loading界面,这个时候需要将图片、脚本、样式表文件等都要作为动态文件载入,javascript和image载入问题不大,相对比较简单,方式如下: 01 | LoadImage : function (url, callback) { |
[backcolor=rgb(248, 248, 248) !important]02 | var img = new Image(); |
[backcolor=rgb(248, 248, 248) !important]04 | img.onload = function () { |
05 | if (callback) callback(); |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]
09 | LoadScript : function (url, callback) { |
[backcolor=rgb(248, 248, 248) !important]10 | var script = document.createElement("script") |
11 | script.type = "text/javascript"; |
[backcolor=rgb(248, 248, 248) !important]
13 | document.getElementsByTagName("head")[0].appendChild(script); |
[backcolor=rgb(248, 248, 248) !important]14 | script.onload = function () { |
15 | if (callback) callback(); |
[backcolor=rgb(248, 248, 248) !important]
可以将上面的代码放如前面所说的小JQuery库中,然后实现批量载入: 01 | LoadImages : function (arr, progress, callback){ |
[backcolor=rgb(248, 248, 248) !important]
03 | for (var i = 0; i < arr.length; i++) { |
[backcolor=rgb(248, 248, 248) !important]04 | $.LoadImage(arr, function() { |
[backcolor=rgb(248, 248, 248) !important]06 | progress && progress(completed, arr.length); |
07 | if(completed >= arr.length) { |
[backcolor=rgb(248, 248, 248) !important]08 | callback && callback(); |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]14 | LoadScripts : function(arr, progress, callback, no){ |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]18 | $.LoadScript(arr, function() { |
[backcolor=rgb(248, 248, 248) !important]20 | progress && progress(i, arr.length); |
[backcolor=rgb(248, 248, 248) !important]22 | callback && callback(); |
[backcolor=rgb(248, 248, 248) !important]
25 | arg.callee(arr, progress, callback, i); |
[backcolor=rgb(248, 248, 248) !important]
[backcolor=rgb(248, 248, 248) !important]
这里的LoadScripts方法是按照数组依次排序载入的,这样是防止类库载入的时候发生网络延迟而导致下面的类库执行中出错。
|
|