- EmberJS 教程
- EmberJS - 首頁
- EmberJS - 概述
- EmberJS - 安裝
- EmberJS - 核心概念
- 建立和執行應用程式
- EmberJS - 物件模型
- EmberJS - 路由器
- EmberJS - 模板
- EmberJS - 元件
- EmberJS - 模型
- EmberJS - 管理依賴項
- EmberJS - 應用程式關注點
- EmberJS - 配置 Ember.js
- EmberJS - Ember 檢查器
- EmberJS 有用資源
- EmberJS - 快速指南
- EmberJS - 有用資源
- EmberJS - 討論
EmberJS - 執行迴圈
這是應用程式大部分內部程式碼發生的地方。它用於批次處理,是一種對工作進行排序或重新排序以檢查其有效性和效率的方式。它基於特定佇列排程工作,以便按優先順序順序完成工作。
將執行迴圈與非 Ember API 整合會導致一些非同步回撥。例如:
- setTimeout 和 setInterval 回撥
- AJAX 回撥
- postMessage 和 messageChannel 事件處理程式
- Websocket 回撥
- DOM 更新和事件回撥
Ember 中的執行迴圈基於按優先順序指定的佇列:
Ember.run.queues => ["sync", "actions", "routerTransitions", "render", "afterRender", "destroy"]
sync - 這是一個更高優先順序的佇列,包含繫結同步作業。
actions - 這是一個通用工作佇列,包含計劃的任務。
routerTransitions - 它指定路由器中的轉換作業。
render - 它用於渲染更新 DOM 的作業。
afterRender - 它在完成計劃的任務後執行作業。
destroy - 這是一個較低優先順序的佇列,它終止計劃銷燬的作業。
基於佇列的作業執行
請按照以下步驟執行基於佇列的作業:
步驟 1 - 在此步驟中,將檢查 CURRENT_QUEUE 中最高優先順序佇列的掛起作業。如果沒有掛起的作業,則執行迴圈將完成。
步驟 2 - 將新的臨時佇列指定為 WORK_QUEUE。
步驟 3 - 將作業從 CURRENT_QUEUE 傳輸到 WORK_QUEUE。
步驟 4 - 依次處理 WORK_QUEUE 中的作業。
步驟 5 - 從步驟 1 重複。
測試時的執行迴圈行為
如果嘗試在沒有執行迴圈的情況下排程工作,則當應用程式處於測試模式時,Ember 將丟擲錯誤。請考慮以下原因以瞭解為什麼停用 Autoruns:
如果在排程回撥之前未能開啟執行迴圈,則 Autoruns 不會在生產中出錯。
停用 autoruns 可以識別在應用程式在執行迴圈之外執行時發生的錯誤測試失敗,並有助於測試您的應用程式。
有關這些執行迴圈以及示例的更多資訊,請參閱此 連結。
emberjs_application_concerns.htm
廣告