这是为了在画布中进行图像处理,我将一个像模型一样的图像放在其他来自目录的图像上,但不知何故,我创建了一个无限循环......那我是怎么搞砸的呢?
function SaveAjax(dataURL){
window.setInterval(function(){
$.ajax({
type: "POST",
url: "saveImage.php",
data: {
imgBase64: dataURL
}
}).done(function(o) {
// console.log('saved');
});
})
}
function loadFile(f) {
var reader = new FileReader();
reader.onloadend = function () {
var arte = new Image();
arte.crossOrigin = "anonymous";
arte.onload = function(){
context.drawImage(arte, 0, 0, 1200, 1200)
var dataURL = canvas.toDataURL("image/png");
SaveAjax(dataURL);
}
arte.src = reader.result;
// images.push({
// name : f.name, // use whatever naming magic you prefer here
// image : reader.result
// });
};
reader.readAsDataURL(f);
}
$(":file").change(function(event) {
var files = this.files;
for (var i = 0; i < files.length; i++) {
loadFile(files[i]);
}
})
window.setInterval
是一个函数,它将每设定的毫秒数调用您提供的任何内容。您拨打的每个SaveAjax()
电话都会重复,我相信每 1 毫秒一次,使用相同的数据。将其更改为 window.setTimeout
这将在设定的毫秒数后仅运行一次 ajax 请求。