[解決済み] javascriptでミリ秒単位で時間を取得する良い方法は?
質問
JavaScriptでdateオブジェクトを使用してミリ秒単位で時間を取得する代替方法はありますか?少なくとも、この値を取得する必要があるたびに新しいオブジェクトをインスタンス化せずに、そのオブジェクトを再利用する方法はありますか?JavaScriptで簡単なゲームエンジンを作ろうとしているのですが、quot;delta frame time"を計算するときに、フレームごとに新しいDateオブジェクトを作らなければならないので、これを質問しています。これによるパフォーマンスへの影響についてはあまり心配していませんが、このオブジェクトが返す正確な時間の信頼性については、いくつかの問題を抱えています。
JavaScript のガベージコレクションが関係しているのか、それとも Date オブジェクトの高速更新の限界なのか、よくわかりません。デルタ値をある定数に設定すると、アニメーションは完全に滑らかになるので、この "jumping" は私が時間を取得する方法に関連していると確信しています。
関連するコードは、デルタタイムを計算する方法だけです。
prevTime = curTime;
curTime = (new Date()).getTime();
deltaTime = curTime - prevTime;
動きやアニメーションを計算するとき、一定の値にデルタタイムを掛けています。
Dateオブジェクトを使用してミリ秒単位で時間を取得することを避ける方法がない場合、変数(ゲーム開始からの経過時間をミリ秒で表したもの)をインクリメントし、SetTimer関数を使用してミリ秒に1回の割合で呼び出す関数は、効率的で信頼できる代替手段となりますか?
編集 : 今、私のコードをさまざまなブラウザでテストしましたが、この "jump" は本当に Chrome でのみ明らかで、Firefox ではそうではないようです。しかし、両方のブラウザで動作するメソッドがあれば、それはまだ素晴らしいことです。
解決方法は?
試す 日付.現在() .
スキップはガベージコレクションが原因である可能性が高いです。一般的にガベージコレクションは、変数をできるだけ再利用することで回避できますが、ガベージコレクションの休止時間を短縮するための方法については、具体的に申し上げられません。
関連
-
Vueの要素ツリーコントロールに破線を追加する説明
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
JavaScriptのgetElementById()メソッド入門
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Vue Element-uiは、アイコンを追加するためのツリーコントロールノードを詳細に実装しています。
-
Vueの要素ツリーコントロールに破線を追加する説明
-
vue ディレクティブ v-html と v-text
-
Vueのフィルタの説明
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
Uncaught TypeError: null のプロパティ 'offsetHeight' を読み取れませんでした。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR
-
JavaScriptのgetElementById()メソッド入門
-
jq は html ページとデータを動的に分割する。