סעיף זה מספק פרטים על עיבוד מקדים על ידי JavaScript.
עיבוד מקדים של JavaScript נעשה על ידי הפעלת פונקציית JavaScript עם a פרמטר בודד 'ערך' וגוף הפונקציה שסופק על ידי המשתמש. ה תוצאת שלב העיבוד המקדים היא הערך המוחזר מפונקציה זו, for לדוגמה, כדי לבצע המרת פרנהייט לצלזיוס על המשתמש להזין:
בפרמטרים של עיבוד מקדים של JavaScript, שיהיו עטופים ב-a פונקציית JavaScript לפי שרת:
פרמטר הקלט 'ערך' מועבר תמיד כמחרוזת. השיבה הערך נכפה אוטומטית למחרוזת באמצעות שיטת ToString() (אם זה נכשל אז השגיאה מוחזרת כערך מחרוזת), עם כמה חריגים:
ניתן להחזיר שגיאות על ידי זריקת ערכים/אובייקטים (בדרך כלל מחרוזות או אובייקטי שגיאה).
לדוגמה:
לכל סקריפט יש פסק זמן של 10 שניות לביצוע (תלוי בסקריפט יתכן שיחלוף זמן רב יותר עד שהפסקה יופעל); מעבר לכך יהיה שגיאת החזרה. מגבלת ערימה של 64 מגה בייט נאכפת.
קוד הבתים של שלב העיבוד המקדים של JavaScript נשמר במטמון ונעשה בו שימוש חוזר כאשר הצעד מיושם בפעם הבאה. כל שינוי בשלבי העיבוד המקדים של הפריט יגרום לאיפוס הסקריפט השמור והידור מחדש מאוחר יותר.
כשלים רצופים בזמן ריצה (3 ברצף) יגרמו למנוע להיות אתחול מחדש כדי להפחית את האפשרות שתסריט אחד ישבור את סביבת ביצוע עבור הסקריפטים הבאים (פעולה זו נרשמת עם DebugLevel 4 ומעלה).
עיבוד מקדים של JavaScript מיושם עם Duktape (https://duktape.org/) מנוע JavaScript.
ראה גם: אובייקטי JavaScript נוספים וגלובליים functions
אפשר להשתמש בפקודות מאקרו של משתמש בקוד JavaScript. אם תסריט מכיל פקודות מאקרו של משתמש, פקודות מאקרו אלו נפתרות על ידי שרת/פרוקסי לפני כן ביצוע שלבי עיבוד מקדים ספציפיים. שימו לב, כי בעת בדיקה שלבי עיבוד מקדים ב-frontend, ערכי מאקרו לא יימשכו ו צריך להזין באופן ידני.
מתעלמים מהקשר כאשר מאקרו מוחלף בערך שלו. ערך מאקרו מוכנס לקוד כפי שהוא, לא ניתן להוסיף בריחה נוספת לפני הצבת הערך בקוד JavaScript. שים לב שזה עלול לגרום לשגיאות JavaScript במקרים מסוימים.
בדוגמה למטה, אם הערך שהתקבל חורג מאקרו {$THRESHOLD} ערך, ערך הסף (אם קיים) יוחזר במקום זאת: