分類
標籤
.env AI Arc Arm Astro BigQuery btop Certbot Chrome CICD Cookie CORS CSS cURL DataTables defineExpose DevOps Docker Draggable Fetch API Gamania Git GitLab Google Calendar Google Cloud Summit Google Tag Manager GSAP HTML iCal inject JavaScript Laravel Less LINE Llama 3 Masonry Meta Nginx Nginx UI O(log n) Ollama OpenSSL Oracle OrbStack PHP Pinia Pixel Postman provide Proxyman Raycast requestAnimationFrame script setup Server Session Sitemap Socialite SSL TablePlus Termius Valet Vertex AI Visual Studio Code Vite Vue 3 Vue2 Vue3 Vuex Warp Webpack Yahoo Calendar Zeabur 二分搜尋 元件溝通 前端開發 動畫效果 峰值體驗 廣告 性能優化 打包 推薦系統 搜尋 時間複雜度 演算法 瀑布流排版 父子元件 環境變數 程式碼複製按鈕 系統監控 網站地圖 網頁開發 自動化部署 螢幕刷新率 語言模型 資訊檢索 跨域請求 轉化率 開發工具 陣列 電商 電子商務
362 字
2 分鐘
使用 JavaScript 計算螢幕刷新率
使用 JavaScript 計算螢幕刷新率
在開發網頁動畫或遊戲時,了解螢幕的刷新率對於優化性能和提供流暢的用戶體驗至關重要。將介紹如何使用 JavaScript 來獲取當前螢幕的刷新率。
原理與方法
要使用 JavaScript 來獲取當前螢幕的刷新率,我們可以通過監聽螢幕的刷新事件並計算時間間隔來實現。主要方法是使用 requestAnimationFrame
函數。
使用 requestAnimationFrame
requestAnimationFrame
是一個用於創建動畫的函數,它會在瀏覽器準備重繪之前調用指定的回調函數。通過記錄每次調用的時間戳,我們可以計算出螢幕的刷新率。
範例代碼
以下是一個使用 JavaScript 計算螢幕刷新率的範例:
let lastTime = performance.now();
let frameCount = 0;
let refreshRate = 0;
function calculateRefreshRate() {
const currentTime = performance.now();
frameCount++;
// 每秒計算一次刷新率
if (currentTime - lastTime >= 1000) {
refreshRate = frameCount; // 每秒的幀數即為刷新率
console.log('螢幕刷新率:' + refreshRate + ' Hz');
frameCount = 0; // 重置計數
lastTime = currentTime; // 更新最後時間
}
requestAnimationFrame(calculateRefreshRate);
}
// 啟動計算
requestAnimationFrame(calculateRefreshRate);
代碼解釋
- 使用
performance.now()
來獲取高精度的時間戳。 frameCount
用於記錄每秒的幀數。- 在
calculateRefreshRate
函數中,計算時間差,當達到或超過 1 秒時,計算並輸出刷新率。 - 使用
requestAnimationFrame
遞迴調用函數,確保持續監測。
使用 JavaScript 計算螢幕刷新率
https://laplusda.com/posts/javascript-calculate-screen-refresh-rate/