当前位置: 首页 > 面试题库 >

可以计算使用AJAX加载了多少数据?

闻梓
2023-03-14
问题内容

我一直在忙于一些AJAX代码。我想计算已加载了多少数据,并想用百分比显示它。

我所有的预加载信息都在“反馈”中。我可以计算它包含多少数据(以字节为单位),也可以查看进度吗?就像加载时一样:10kb,20kb,30kb等

我的代码:

function calc(page)
    {
    $('#pageLoad h2').animate({ marginTop : '0px'}, 200);
        $.ajax(
        {
            url:            './pages/page.php',
            type:           'POST',
            data:           'page='+page,
            success:        function( feedback )
            {
                $('#content').html( feedback );
            }

        });
    };

对不起,我英语不好。


问题答案:


可能的。XHRs有一个progress事件。唯一的问题是访问XHR对象-
不幸的是beforeSend仅接收该jqXHR对象,而不接收基础XHR对象。也不能作为包装器的属性来访问它。但是,您可以通过将以下选项添加到XHR对象来创建XHR对象$.ajax()

xhr: function () {
    var xhr = $.ajaxSettings.xhr(); // call the original function
    xhr.addEventListener('progress', function (e) {
        if (e.lengthComputable) {
            var percentComplete = e.loaded / e.total;
            // Do something with download progress
        }
    }, false);
    return xhr;
}

这是我最初的解决方案。与jQuery结合起来非常困难,因为您不能轻易地挂接到onreadystatechange处理程序,并且在设置之后无法安全地替换它:

您需要添加一个自定义 onreadystatechange处理程序。当 readyStateXHR对象的变为 2
HEADERS_RECEIVED
)时,您可以访问 Content-Length标头以获取总大小,然后使用 xhr.readyState == 3
LOADING )等待事件触发。

然后,您可以通过查看来计算进度xhr.responseText.length
但是,这只会触发一次。因此,您需要启动一个计时器(使用setInterval()),该计时器将检查就绪状态和响应大小,例如每100毫秒。请求完成后,您可以使用再次停止间隔clearInterval()



 类似资料:
  • 我正在学习谷歌在udacity制作的android课程中的例子,我用另一个例子替换了这个例子的url,但是我只能看到,使用日志只能看到我正在下载的url的一小部分。 您可以下载的数据量有限制吗? 我在日志中的回复: V/FetchWeatherTask︰预测JSON字符串:{"cod":"200","消息": 0.0506,"城市":{"id": 0,"name":"Mountain View",

  • 我两个月前刚开始学习Spring,以前从未做过Ajax或JavaScript。所以我对这个很陌生。我想做的是从控制器中的GET方法加载数据,将其填充到模式中。我正在使用ajax来实现这一点。基本上我做了这家伙做的事https://qtzar.com/2017/03/24/ajax-and-thymeleaf-for-modal-dialogs/正在做。但它不起作用。 希望有人能帮我。 这是我的控制

  • 我有一个UICollectionView,里面充满了图像、视频和声音字节。一切顺利!然而,我对带宽的使用感到关切。 我不确定使用出列可重用单元格的UICollectionView是如何工作的,也不确定这些项目何时从存储下载。 假设我有一个简单的牢房。 为了回答我的问题,假设我在集合视图单元格中有100个单元格,每次只显示3个单元格。 加载UICollectionView时是否加载所有100个图像?

  • 如何计算文本更改了多少? 例如以下文本: 与 这里的变化很小(末尾增加了x) 下面的变化很大: (此处我添加了“更多文本”) 我想到了测量字符串长度,并用它来计算变化百分比。但这种方法在以下情况下会出现问题: (几乎相同的长度,但完全不同的文本) 我怀疑很多人遇到了这个问题。但我似乎在谷歌上找不到太多,可能是因为不知道这项技术的名称是什么,它可以测量文本的变化。

  • 问题背景: 显示一段文本,如果文本超过十行显示展开,收起按钮,按钮占一整行。文本有换行符。 问题:怎么计算文本实际占多少行。 尝试:使用z-index= -1先显示文本,计算文本高度。大于一个固定高度高度来判断。是否超过十行。 疑问:

  • 问题内容: 我正在建立一个新的由AJAX驱动的网站,其中包含不同的部分。每个部分都需要一组新的Javascript函数才能运行。我宁愿不要一开始就加载每个脚本,因为可能会有很多脚本。 有没有一种方法可以使用AJAX加载新脚本并删除旧脚本(以确保类似的变量名或函数签名不存在兼容性问题)。 谢谢 编辑 -jQuery很好,它不必是老式的Javascript 问题答案: 三件事: 1)是,您可以加载新脚