2017-11-18 3 views
0

これはキャンバスでの画像処理のためのものです。他のものよりモックアップのような画像を挿入しますが、無限ループを作成します... どうして私は台無しになったのですか?ディレクトリから別の画像に画像を保存する必要があります。無限ループに入ります。

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]); 
    } 
}) 

答えて

1

window.setIntervalは、設定されたミリ秒ごとに何かを呼び出す関数です。それぞれのSaveAjax()あなたが作ることを繰り返す、私は同じデータで、1msごとに信じています。 window.setTimeoutに変更します。これは、設定されたミリ秒後に1回だけajaxリクエストを実行します。

+0

リンクの英語バージョン:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout –

+0

@DavidKnipeありがとう、私の返信を更新しました。 – Zefiryn

+0

Maannnn私はばかです!ハハ、私はajax関数を貼り付け、setIntervalを削除するのを忘れてしまいました、ありがとうございます! –

関連する問題