לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 23-07-2005, 03:41
  Omri.L Omri.L אינו מחובר  
 
חבר מתאריך: 21.01.05
הודעות: 418
מה נחשב יותר יעיל, שימוש ב-include או כתיבת הסקריפט?

היי חבר'ה,
אני מעוניין לדעת מה יותר יעיל: יש לי דף שמקבל נתונים ועורך חיפוש, אותו דף יודע לערוך 2 סוגי חיפושים, ולכן עשיתי בעצם מבנה של if ו-else שאם הוא מקבל ערך מסויים הוא עורך חיפוש מסוג אחד, ואם לא הוא עורך חיפוש מסוג שונה.
כל זה הקדמה, השאלה: מה יותר יעיל, לרשום את הקוד של 2 סוגי החיפוש בתוך מבנה ה-if או להשתמש ב-Include בכל אחד מהם לקובץ שבו יהיה תהליך החיפוש?

אני שואל את זה כי מצב אחד נשמע יותר הגיוני שאם הקובץ יהיה קל יותר ועם פחות קוד הוא יעבוד מהר יותר, מצד שאני אני לא יודע אם המנוע של PHP בעצם מדלג על קטע ישר שהוא רואה שהוא לא רלוונטי, ואז בעצם יש יותר משאבים לקריאה ב-include.

אני יודע שההבדלים בוודאי ממש זעירים, אבל בכל זאת חשוב לי לתכנת כמה שיותר אופטימלי
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 23-07-2005, 23:03
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
שימוש בקבצים...
בתגובה להודעה מספר 1 שנכתבה על ידי Omri.L שמתחילה ב "מה נחשב יותר יעיל, שימוש ב-include או כתיבת הסקריפט?"

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

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

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

בכל מצב אפשרי - מומלץ להשתמש ב require_once. המקרים בהם לא, אם אתה רוצה שהסקריפט ימשיך לרוץ גם אם הדף הנוסף לא יטען (אין תלות בפונקציות בתוך הדף הזה) אז יש include_once. או אם מדובר במודולים גרפיים, שאתה יכול לטעון למספר מקומות בדף ואז include.

require_once מבטיח שלא יטען דף פעם נוספת ועלול ליצור הכרזה כפולה על משתנים/פונקציות (נעשה אוטומטית ב-PHP5)

אבל הכל כתוב כאן...:
http://il.php.net/manual/en/function.include.php
(:
_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #7  
ישן 24-07-2005, 02:01
צלמית המשתמש של fat fish
  fat fish fat fish אינו מחובר  
 
חבר מתאריך: 20.06.03
הודעות: 5,616
תכנות מודלורי...
בתגובה להודעה מספר 6 שנכתבה על ידי Omri.L שמתחילה ב ":) אהבתי. מסכן השרת שלך, בכל מקרה:"

אם אתה לא עובד עם אובייקטים, לפחות תעבוד בצורה מודולרית.

תפריד פונקציות שמטפלות בנתונים בפונקציות שמטפלות בפלט למסך.
תיצור חבילות (packages) של פונקציות לפי נושאים, לדוגמה:
קובץ המכיל את כל הפונקציות היוצרות פלט למסך, funcHtmlOutput.php

ההפרדה בין פונקציות פלט לפונקציות לטיפול בנתונים, יאפשרו לך שינוי בעיצוב מבלי לשחק עם הפונקציות שמטפלות בנתונים, לדוגמה:
קוד PHP:
 function arrGenerateSearch($param1$param2...) { 
     
//code for search
     //group the results in associative array
     
return $rusult_array;


ולעומתה, הפונציה שלוקחת את מערך הפלט של הפונקציה הקודמת ובונה פלט טבלאי לדוגמה:
קוד PHP:
 function funcOutputList($arr) { 
     
// output HTML code base
     // on the $arr



בגוף התכנית שלך, זה לא צריך להוות יותר משורת קוד אחת:
קוד PHP:
 funcOutputList(arrGenerateSearch($param1$param2)); 

תמיד עדיף לבנות מחלקות מופשטות לטיפול בסוגי נתונים שונים, ולהשתמש בהם מחדש (reuse) במערכות שונות שתבנה.
תכנות נכון מבוסס על הפשטה של הקוד לחלקים פונקציונלים קטנים ככל הניתן, המבצעים פעולות כלליות (generic) ככל הניתן.
בהצלחה,
_____________________________________
[ זיו ]
[ fat fish ]

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 12:17

הדף נוצר ב 0.06 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר