2014-07-11 49 views
0

我有发送画布(近似350KB)到服务器以进行处理以下Ajax代码:XMLHttpRequest的暂停服务器响应直到AJAX完成

html2canvas(document.body, { 
onrendered: function(canvas) { 
    var canvasData = canvas.toDataURL("image/png"); 
      var ajax = new XMLHttpRequest(); 
      ajax.open("POST",'www.domain.com/process.php',true); 
      ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
      ajax.send("imgData="+canvasData); 
    } 
}); 

的问题是,当执行AJAX调用时,我们可以不能访问服务器www.domain.com上的任何其他页面。它一直等到被叫完成。

我在这里做错了什么,或者它只是不适合我们需要完成的任务吗?

谢谢!

+0

你真的可以用“www”启动一个url吗? – dandavis

+0

如果连其他浏览器中的页面停止,听起来就像你的服务器很糟糕,而不是客户端JS。你可能想要考虑node.js来捕获上传文件:它可以一次处理多个文件... – dandavis

回答

0

我想你缺少围绕ajax.open API参数的引号。

html2canvas(document.body, { 
onrendered: function(canvas) { 
    var canvasData = canvas.toDataURL("image/png"); 
      var ajax = new XMLHttpRequest(); 
      ajax.open("POST",'www.domain.com/process.php',true); 
      ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
      ajax.send("imgData="+canvasData); 
    } 
}); 
+0

是的,你是对的。在这里复制代码时,这只是一个错字。仍然,最初的问题仍然存在...... – Luciano

相关问题