【发布时间】:2018-10-01 19:58:42
【问题描述】:
我需要发送 XML 请求,其中包含通过填写 HTML 表单获得的文件的值和内容。有5个文件,其中一些有aprox。 70 MB 或更多。所以我在javascript中使用了一些函数,它加载文件的内容和另一个组装XML请求并发送它的函数。 问题是:在我点击加载文件的按钮后,浏览器崩溃(但我可以通过浏览器打开这些文件 - 没关系)。文件太大,浏览器无法处理。 任何想法问题出在哪里?以及如何处理?我以为可能是超时了,但真的不知道...
文件加载函数:
function getFile1Content() {
var file = document.getElementById("file_zdr").files[0];
if (file) {
var reader = new FileReader();
reader.readAsText(file, "UTF-8");
reader.onloadend = function (evt) {
fileContent1 = evt.target.result;
loaded++;
console.log("FC1 " + fileContent1)
}
reader.onerror = function (evt) {
console.log("ERROR FC1");
}
}
}
感谢您的想法!
【问题讨论】:
-
你用什么浏览器?您使用 F12 工具获得了哪些信息?
-
@JeroenHeier 我正在使用 Opera 52.0。 DevTools 在崩溃后断开连接,所以我不能告诉你太多。但加载页面后有一条消息 - [Violation] 'setInterval' 处理程序耗时 92 毫秒。
-
即使你能完成这项工作,对用户来说也永远不会是愉快的体验。将 70Mb 的数据下载到浏览器以便您可以在本地搜索它是错误的方法。您需要将查询发送到数据,而不是将数据发送到查询。也就是说,您需要服务器上的一些逻辑来执行搜索,或者至少是部分过滤。
-
我知道这不是解决问题的聪明方法。但是所有这些都是为了我的毕业论文,看起来更复杂:-) 我正在使用 PyWPS 框架,该框架期望 XML 请求具有不同的数据/用户文件来执行每个过程。我仍然是开发网络应用程序的初学者,也许我只是不知道如何更好地解决它。但感谢您的回复,迈克尔!
标签: javascript ajax xml request large-data