相关疑难解决方法(0)

如何以ajax响应的百分比显示加载状态?

我想显示用进度条加载的ajax响应的用户百分比.有没有办法实现它?现在我只是展示一张图片.

这是我的代码示例:

$('#loadingDiv').show();

$.ajax({
        type : 'Get',
        url : myUrl,
        success : function(response) {
            $('#loadingDiv').hide();
            populateData(response);
        },
        error: function(x, e) {
                    $('#loadingDiv').hide();
            if (x.status == 500 || x.status == 404) {
                    alert("no data found");
                }
        }
    });
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<div id="loadingDiv">
     <img src="loading-img.png"/>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

17
推荐指数
1
解决办法
5万
查看次数

Angular 2初始加载进度

我已经尽力将Angular 2的捆绑大小降低,并且使用Browserify+ Rollup+ Minify+ 将大小减小到~300kb(Angular 2 + jquery + bootstrap +其他一些小型第三方库)相对成功GZIP但是即便如此大小,下载捆绑包仍然需要一段时间,然后考虑到反射和zone.js的初始加载时间,这意味着在较慢的设备(手机)上加载时间可能需要4-5秒现场.

虽然我知道这是不可避免的(至少现在),有没有办法用下载百分比+ reflect/zone.js初始化来显示初始加载的加载进度?

大多数例子都是这样的:

<body>
   <my-app>Loading...</my-app>
</body>
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,Loading...可以用微调器或任何可能选择的自定义模板替换,但有没有办法以有意义的方式获得实际进度?

我正在寻找的是类似于Gmail加载进度,这是一个具有最小/最大值的实际进度条而不是一些不确定的微调器,以便用户可以获得某种形式的指示,指示他们需要等待网站的时间长度加载.

提前谢谢了,

更新(2016年10月24日)

我已经开始使用NGC提前编译(https://angular.io/docs/ts/latest/cookbook/aot-compiler.html),它已经加快了相应的速度(虽然捆绑大小增加到〜 500kb压缩)但是在下载完所有内容后仍然需要大约300ms来加载网站.

理想情况下,我希望能够拦截下载和加载过程,调查它们的状态(例如,下载230kb/500kb或完成模块构建的10%),然后加载进度条和实际给出的状态栏向用户指示他们究竟在等什么.

我目前所拥有的是为进度条加载最小的CSS,显示它然后在onLoad函数上按顺序加载所有有角度的东西,虽然它比以前更平滑,但用户必须等待多长时间仍然不明显 - 根据互联网连接和设备的功能,是半秒到几秒.

angular

15
推荐指数
1
解决办法
1414
查看次数

requirejs加载脚本进度

冒问一个愚蠢的问题,我会尝试一下.

在RequireJs加载依赖项时是否可以显示进度指示器?

例如:

require(['jquery'], function($) {

    // Well, jQuery loaded in quite some time due to a low-speed connection
    //
    // Or maybe I wanted to show an overlay to prevent user of clicking on UI widgets until the load is complete
});
Run Code Online (Sandbox Code Playgroud)

我不想开始修改RequireJS源,如果有一些插件没有出现在我的谷歌搜索中.

感谢你的帮助.

requirejs

13
推荐指数
3
解决办法
7513
查看次数

如何在webpack加载单个捆绑的javascript文件时显示进度条?

问题是关于webpack.在将几乎所有内容打包到index.html中加载的单个bundle.js之后,bundle.js文件大约为2M并且需要几秒钟才能加载.

我想显示一个进度条,指示加载进度同时隐藏所有内容.只有在加载完成后才启用用户交互并显示内容,这正是Gmail正在使用的内容.

是否可以使用webpack来做到这一点?怎么样?

谢谢!

javascript webpack

12
推荐指数
1
解决办法
1627
查看次数

动态加载JavaScript并监控下载进度

高级视图:我使用Emscripten将各种传统的C/C++代码库转换为优化的JavaScript,以便基于浏览器的现代用户库可以轻松利用其功能.到现在为止还挺好.但是,即使在网络传输压缩之后,Emscripten-transiled JS也会有点笨重.

为了改善用户体验,我想在主页加载后下载这个巨大的JS块,并且我想监视下载进度以显示在页面UI中.我知道有两种动态加载方法,我遇到了两个方面的缺点:

  1. 第一种方法是创建脚本标记(嵌入在HTML页面中或由JS动态生成).该onload事件触发时,该文件被下载并准备运行.这种方法的问题是我找不到监视下载进度的方法.脚本对象确实有一个onprogress事件,但它似乎没有做任何事情(在Chrome中测试).
  2. 使用XMLHTTPRequest(XHR)对象动态请求JS资源.这很好用并触发预期的下载进度事件.但是,eval()在下载的数据上运行JS 没有正确的效果(预期的函数不会显示在JS命名空间中).

执行eval()更简单的带有JS的字符串具有预期的结果,所以我想知道eval()在Emscripten编译的代码上运行是否有一些特殊技巧.

相反,我已经实现了一种结合上述方法1和方法2的混合解决方案:XHR执行初始加载并丢弃数据.然后,页面创建一个脚本元素来加载相同的JS文件,该文件现在位于浏览器的缓存中并立即加载.但这显然是一个黑客,我不禁想到必须有一个更清洁的解决方案.

javascript xmlhttprequest emscripten

6
推荐指数
1
解决办法
1171
查看次数

如何在下载小文件时在 JavaScript 中显示进度条?

我编写了以下函数来处理 AJAX 请求以获取数据:

var xhr = createCORSRequest('GET', url);
if (!xhr) {
    alert('CORS not supported');
    return;
}
xhr.onload = function() {
    var txt1 = xhr.responsetxt1;
    var heading = getheading(txt1);

    if (heading == 'PASS') {
        var file = "My_URL" + ".js";
        downloadFile(file);
        //My code to display a progress bar here?
    } else {
        //Logic to handle failure to load
    }
};
Run Code Online (Sandbox Code Playgroud)

这是我downloadFile下载文件的功能。但是,我不明白如何:

  • 检查下载是否完成。
  • 显示进度条以显示进度。

如果您可以添加其工作原理的描述,那就太好了。谢谢。

function downloadFile(fileName) {
    (function(d) {
        var ref = d.getElementsByTagName('script')[0];
        var js = d.createElement('script');
        js.src = …
Run Code Online (Sandbox Code Playgroud)

javascript ajax android progress-bar

5
推荐指数
1
解决办法
6903
查看次数

是否可以让 webpacks System.import 使用 ajax(用于进度事件)?

所以我刚刚更新到 webpack 2 并进行了我的第一个工作设置,其中 webpack 通过查看 System.import 调用自动创建块。好甜!

但是,我使用 ajax 调用加载初始块,以便在加载时显示进度

所以我的问题是,我可以以某种方式覆盖或更改 System.import 的功能,以便它使用我可以侦听事件的 ajax 请求,而不是用<script>标签加载块吗?

javascript ajax progress-bar webpack webpack-2

4
推荐指数
1
解决办法
1390
查看次数