2016-12-27 6 views
0

ボタンがあり、HTMLファイルにinput1フィールドがあります。ボタンをクリックすると、サーバーは値1をインクリメントしてinput1フィールドに表示します。AddEventListener()サーバーからの変更に基づいて入力フィールドのonchangeを変更しました

javascriptファイル:時間パフォーマンステスト:ボタンをクリックしたときの時間(ミリ秒)を節約し、input1フィールドにサーバーからインクリメントされた値が返される時間を節約したい。

入力フィールドにサーバーによって行われた値の変更を検出するJSのEventListenerはありますか?

私はaddEventListenerを試しましたが、うまく動作しません。わかっているように、ユーザーが行った変更のみを検出します。正しい方向に私を指差してください。

function myFunction() { 
    var mss = performance.now(); 
    document.getElementById("time").innerHTML="Click Time in milliseconds: "+mss; 

    document.input1.addEventListener("change", getTime(mss),false); 
} 

function getTime(e){ 
    var rt = performance.now(); 
    var ms = e; 
    var diff= rt-ms; 
    document.getElementById("returnTime").innerHTML="Return time in milliseconds:"+ ms; 
    document.getElementById("timeDiff").innerHTML="Time Difference in milliseconds:"+ diff; 
} 
+0

あなただけのgetTime(MSS) '直接MyFunctionの'の下部にある '呼び出していない任意の特定の理由( ) '、' onchange'リスナーに加えて? –

+1

"サーバーからインクリメントされた値が返されたときに時間を節約したい" - どのサーバーですか?なぜこのサーバーが何かを返すと期待していますか?サーバーは入力(クライアント上に存在するDOMの一部)をどのように変更する必要がありますか? – Quentin

+0

@JonUleis 私はそれを試みました。それはちょうどすぐに私のボタンをクリックして反応し、ほぼ同じ動作時間を返します、それは私に入力値の変更の時間を与えるものではありません。 私がしたいのは、ボタンをクリックするとクリック時間が戻ってくるはずです(mss)。そして、それはinput1の値の変更を待つべきです。そしてinput1がその値を変更すると、それはrt時間を返します。 ボタンをクリックするとサーバにコールが送信され、サーバは変数をインクリメントして1秒遅れて返信します。インクリメントされた値はinput1に表示されます。私はinput1値の変更の時間が必要です。 – Khkhy

答えて

2

イベントリスナーではなく、この行のgetTime関数を呼び出しています。私はあなたの代わりに何をしたいと考えてい

document.input1.addEventListener("change", getTime(mss),false);

は次のとおりです。

document.input1.addEventListener("change", getTime.bind(null, mss),false);

+0

これは機能しません。 getTime()は、input1の値が変更された時刻ではなく、クリックの時刻を返します。テストのために、input1が値を変更するまでボタンをクリックしてから、1秒の遅延を入れましたが、eventlistenerはまだ私にクリックの時間を返します。 – Khkhy

関連する問題