相关疑难解决方法(0)

在流行的浏览器中允许多少并发AJAX(XmlHttpRequest)请求?

在Firefox 3中,每个域的答案是6:只要触发到同一个域的第7个XmlHttpRequest(在任何选项卡上),它就会排队,直到其他6个完成.

其他主流浏览器的数字是多少?

此外,有没有办法绕过这些限制而不让我的用户修改他们的浏览器设置?例如,jsonp请求的数量是否有限制(使用脚本标记注入而不是XmlHttpRequest对象)?

背景:我的用户可以从网页向服务器发出XmlHttpRequests,要求服务器在远程主机上运行ssh命令.如果远程主机关闭,ssh命令将花费几分钟时间失败,最终阻止我的用户执行任何进一步的命令.

browser ajax xmlhttprequest

350
推荐指数
7
解决办法
18万
查看次数

HTML5 File API从服务器下载文件并将其保存在沙箱中

我正在尝试理解HTML5 API.我正在设计Web应用程序,浏览器客户端需要从服务器下载多个文件; 用户将对下载的文件和应用程序执行某些操作,而不是需要在用户上保存状态.我知道浏览器只能将这些文件保存到它的沙盒中,只要用户可以在第二次启动应用程序时检索这些文件就可以了.我应该使用BlobBuilder还是FileSaver?我在这里有点失落.

html5 blob fileapi filesaver.js

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

使用XmlHttpRequest发送文件:Streaming?

我试图通过拖放上传大文件.我有这段Javascript代码:

xhr = new XMLHttpRequest();
xhr.open('POST', url, true);
xhr.setRequestHeader('X-File-Name', file.name);
xhr.setRequestHeader('X-File-Size', file.size);
xhr.setRequestHeader('Content-Type', file.type);
xhr.send(file);
Run Code Online (Sandbox Code Playgroud)

where url是一个目标url的字符串,file是一个文件拖放后检索Blob到的(根据http://www.w3.org/TR/XMLHttpRequest2/#the-send-method).此代码适用于Chrome 12,Safari 5和Firefox 4,并在HTTP请求正文中发送文件的原始内容.

但是,如果文件足够大,则永远不会发送请求.相反,XMLHttpRequest对象触发和错误事件(没有任何有用的消息).在我的环境中,此限制为86Mb,但因机器而异.

Chrome的javascript控制台显示以下消息:

POST http://localhost/xfiles/xfiles.php undefined (undefined)
Run Code Online (Sandbox Code Playgroud)

这与我的代码无关(与较小的文件完美配合).

浏览器似乎在内存中并在发送之前读取整个文件.可能有一个内存不足的异常或类似的东西会停止进程.在任何情况下,都没有发送HTTP请求,因此可以肯定服务器的限制与此问题无关.

无论如何,阅读整个文件是浪费资源.

是否有任何方法以流方式逐字节发送文件,而不必先将其存储在内存中?

javascript streaming upload xmlhttprequest

13
推荐指数
2
解决办法
1万
查看次数