有没有办法对客户端的图像预加载进行速率限制?

时间:2014-07-23 17:19:43

标签: javascript html networking scaling bandwidth

我正在处理一个包含流音频和许多幻灯片的页面。在活动期间,音频播放和幻灯片按需加载。在常规活动期间工作正常,但在大型公司活动期间失败,其中1000个用户的幻灯片的http下载激增带宽并暂时使网络饱和,导致音频跳过/切断。

我想在用户打开页面时预加载所有图像,但我想知道是否也可以对所有图像的下载进行速率限制。我喜欢将图像的预加载限制为特定的kb / s。这是可能的客户端吗?如果不是什么是一个好的选择服务器/客户端?

1 个答案:

答案 0 :(得分:0)

使用文件API在JavaScript中可以进行限制文件大小的客户端验证。

这里有一个很好的教程:Reading files in JavaScript using the File APIs

最后一点:你不应该只依赖'客户端验证。您必须使用服务器端验证。

更新(仅适用于'客户端验证):

使用JS,您可以尝试这样:

if (typeof FileReader !== "undefined") {
    var size = document.getElementById('myfile').files[0].size;
    // check file size
}

(所有浏览器可能都不支持。只有最新版本的Webkit浏览器才支持此功能。)

或者使用 FILE API ,您可以尝试这样:

<input type="file" id="fileInput" />
var size = document.getElementById("fileInput").files[0].size;