תכונות אינטרנט:
Scheduler API
כשמפתחים אפליקציות אינטרנט מורכבות, למשימות יש רמות דחיפות שונות. השלמת משימות בתצוגה הנוכחית חשובה יותר משליחת ניתוחים או מאחזור מראש של נכסים. Prioritized Task Scheduling API מאפשר לתזמן עבודה עם עדיפויות ספציפיות, כדי להבטיח שהדפדפן ימשיך להגיב לקלט של המשתמשים.
תזמון משימות לפי עדיפות
אתם יכולים להשתמש ב-scheduler.postTask() כדי לתזמן משימות באחת משלוש רמות עדיפות:
-
user-blocking: משימות שחוסמות את האינטראקציה של המשתמש (למשל, טיפול בקלט, עיבוד קריטי). -
user-visible: המשימות גלויות למשתמש אבל לא חוסמות (ברירת המחדל). -
background: משימות שלא דורשות תגובה מיידית (למשל, ניתוח נתונים, אחזור מראש).
// Schedule a high-priority task that blocks user interaction
scheduler.postTask(() => {
// DO: Handle critical updates that impact user interaction
handleCriticalUpdate();
}, { priority: 'user-blocking' });
// Schedule a default priority task
scheduler.postTask(() => {
// DO: Render non-critical content that is visible to the user
renderSecondaryContent();
}); // Defaults to 'user-visible'
// Schedule a low-priority background task
scheduler.postTask(() => {
// DO: Perform heavy background work that is not time-critical
sendAnalytics();
}, { priority: 'background' });
אסטרטגיות חלופיות
כדי לתמוך בדפדפנים שאין להם את Prioritized Task Scheduling API, צריך להשתמש ב-polyfill כדי לשמור על תעדוף המשימות.
// Feature detect the scheduler API
if (!('scheduler' in window && 'postTask' in window.scheduler)) {
// DO: Conditionally load the polyfill for browsers that need it
const script = document.createElement('script');
script.src = 'https://unpkg.com/scheduler-polyfill';
script.onload = () => {
// Polyfill is loaded and ready to use
runScheduledTasks();
};
document.head.appendChild(script);
} else {
runScheduledTasks();
}
function runScheduledTasks() {
// Now safe to use scheduler.postTask in all browsers
scheduler.postTask(() => {
console.log('Task with priority support');
}, { priority: 'background' });
}