איחור טעינת סקריפטים לפי תנאי עם Flying Scripts

תוסף Flying Scripts חביב עלי בגלל שהוא עושה עבודה מצוינת ובצורה פשוטה. כל מה שצריך זה לתת לו שמות של סקריפטים שתרצו שיטענו באיחור והוא ידאג לזה.

אבל מה אם נניח נרצה שסקריפט מסוים יטען באיחור בכל האתר חוץ מבעמוד אחד? סיטואציה שהגיוני מאוד שתקרה לנו אם בעמוד אחד יש שימוש באיזו יכולת שדורשת את הסקריפט בהתחלה וכל שאר העמודים לא צריכים אותו. אם נוכל להגדיר טעינה מאוחרת לפי העמוד זה יועיל מאוד לביצועי האתר.

אין דרך מובנת לעשות את זה ב Flying Scripts אבל אם אתם לא חוששים לשנות קוד של תוסף, תוכלו לשנות קצת את הקוד כדי לתמוך בזה. (דורש שיטה כלשהי של version control כדי להתמודד עם עדכונים – ספציפית התוסף הזה לא מרבה להתעדכן אז פחות נורא אבל עדיין צריך לטפל בזה נכון).

אפשרות אחת שלא אכתוב פה היא להוסיף להגדרות של Flying Scripts את האפשרות לבחור טעינה מאוחרת כללית וטעינה מאוחרת לפי דף. זה פתרון שלם יותר אבל לפעמים כל מה שתצטרכו זה פחות מזה ותוכלו להכניס את זה ישירות בקוד בצורה הבא, כנסו לקובץ html-rewrite.php של התוסף והכניסו את הקוד שלכם לפונקציה הבאה:

function flying_scripts_is_keyword_included($content, $keywords)
{
    foreach ($keywords as $keyword) {
        if (strpos($content, $keyword) !== false) {
            return true;
        }
        if (strpos($content, 'abc') !== false && !is_front_page() )
        {
            return true;
        }
       // write more logic here
    }
    return false;
}

כלומר, אם בכל מקרה הסקריפט מכיל מילה שרשמת בסקריפטים לאיחור, זו ההתנהגות המקורית והסקריפט יטען באיחור. אם לא, כאן תוכלו להתאים את הקוד לצרכים שלכם. למשל בדוגמה פה אם מדובר בסקריפט abc ואנחנו לא ב front page אז אנחנו רוצים שהסקריפט יטען באיחור למרות שהוא לא ברשימה – כלומר רק בדף הבית אנחנו רוצים שיטען ללא lazy.

במקרה שיש כאן יותר משחקים ואתם רוצים גישה נוחה מההגדרות באדמין אז כאמור יש צורך לכתוב יותר קוד כדי לשקף את היכולת באדמין אבל אם מדובר בטיפול פרטני לסקריפט בודד, השינוי המהיר הזה גם יספיק.

0 0 דירוגים
דרג את הפוסט
הרשמה
Notify of
0 תגובות
Inline Feedbacks
הצג את כל התגובות

גם הסניפטים הבאים יעניינו אותך

0
אשמח לשמוע את דעתכם, מוזמנים להשאיר תגובהx