【发布时间】:2014-06-02 21:05:19
【问题描述】:
首先,由于隐私问题,我无法给出确切的代码,但我会尽量使其准确。
$(".page").each( function() {
var this_dom = $(this);
var this_class = this_dom.attr("class");
var page_no = this_class.substr(this_class.indexOf("page_")+5,1);
var obj = {};
obj.id = 'page_' + page_no;
obj.encoded_html = encodeBase64("<html><head><style>"+css+"</style></head><body>"+ $(this).html() +"</body></html>" );
obj.quality = 10;
obj.height = 2200;
obj.width = 1700;
obj.format = 'png';
$.ajax({
type: "POST",
url: "some url",
data: obj,
dataType: 'json',
success: function(res) {
page_cnt++;
$("form.cmxform").append('<input type="hidden" name="page_'+(page_no)+'" value="'+res['img']+'">'); // PRODUCTION
if (page_cnt === page_total) {
form.submit();
}
return false;
}
});
});
那么它的作用是遍历所有具有 .page 类的标签,对里面的内容进行编码,使用 ajax 发布它,然后将其呈现为 png,然后重新编码发送回,然后附加到表单中。一旦它完成了所有这些,它就会通过另一个 .php 文件将数据 uri 提交到数据库。
这已经工作了很长时间,并且对于其他形式,我仍然可以正常工作,但是我确实有一个有 7 个“页面”,并且在大约第四个之后,我在 FF 中收到了无响应的脚本错误消息,并且这个刚刚开始发生。在 Chrome 甚至 IE 中都可以正常工作。另外,如果 FireBug 是打开的,这永远不会失败,我什至没有设置断点或任何东西,只是让它打开一切似乎都可以正常工作。
此外,无响应脚本错误是随机的,一次可能是 jquery 库,另一次是我使用的 base64 库,但大多数情况下它会吐出 jquery 库错误。
我是 jquery 和 js 的新手,几乎是自学成才的,所以帮了很多忙,你能再帮我一次吗?!
【问题讨论】:
-
可能是 ajax 超时?有什么迹象吗?
-
我全局设置了这个:$.ajaxSetup({ async: false, cache: false, timeout: 20000 });它曾经是 10000,但我把它翻了一番,看看是否有帮助,但没有。
-
那么可能不是您的要求。请参阅我关于如何使用自己的超时而不是 firefox 干预来调用此函数的答案。