⌨️ עורך קוד (WebApp Editor)
תוכן זה מסביר את טעינת העורך, מנגנון הגיבוי, וניהול העדפות.
טעינת CodeMirror ומצב isLoading
נטען את CodeMirror בצורה דינמית.
אם הטעינה נכשלת → מנגנון fallback (textarea) מופעל.
במהלך הטעינה מוצג מצב
isLoadingכדי למנוע אינטראקציה מיותרת.
let isLoading = true;
try {
const cm = await import('codemirror');
// init editor...
} catch (e) {
console.warn('Editor fallback to textarea', e);
} finally {
isLoading = false;
}
שמירת העדפות משתמש – שני נתיבי API
כדי לשמור תאימות לאחור, מומלץ לכתוב לשני נתיבים:
POST /api/ui_prefsPOST /api/user/preferences
async function savePrefs(prefs) {
const body = JSON.stringify(prefs);
const headers = { 'Content-Type': 'application/json' };
// כתיבה לשני מסלולים (best-effort)
await Promise.allSettled([
fetch('/api/ui_prefs', { method: 'POST', headers, body }),
fetch('/api/user/preferences', { method: 'POST', headers, body }),
]);
}
savePrefs({ wrap: true, fontSize: 14, theme: 'ocean' });
שדות טיפוסיים: wrap, fontSize, theme, tabSize.
המלצות
אחסון לוקאלי משלים (
localStorage) להאצת טעינה.ולידציה צד־שרת לערכים חריגים.
לוגים מאוחדים עם
request_idעבור פעולות עריכה ושמירת העדפות.