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

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



  #8  
ישן 22-07-2007, 16:04
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
בתגובה להודעה מספר 5 שנכתבה על ידי dardevil שמתחילה ב "שלום ישראל. אני כבר ניסיתי..."

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

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

קוד PHP:
 $RAND_RESULT = Array();

function 
rand_unique($min=0$max=100)
{
    do
        
$rand rand();
    while(
in_array($rand$RAND_RESULT) AND count($RAND_RESULT)<($max-$min));

    return 
$RAND_RESULT[] = $rand;
}

function 
rand_unique($min=0$max=100)
{
    if(
count($RAND_RESULT)<($max-$min))
        do
            
$rand rand();
        while(
in_array($rand$RAND_RESULT));
    else
        
$rand rand();

    return 
$RAND_RESULT[] = $rand;

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 22-07-2007, 23:14
  dardevil dardevil אינו מחובר  
 
חבר מתאריך: 12.08.05
הודעות: 883
בתגובה להודעה מספר 12 שנכתבה על ידי ישראל K שמתחילה ב "1. הזחות - תזיח את הקוד בהתאם..."

1. אני תמיד משתמש בטאבים בקודים שלי. הקודים שלי בדרך כלל ארוכים וכשזה לא מסודר בעין, אני לא מסוגל לעבוד. פה בהדבקה זה יצא משום מה בלי הרווחים. מצטער.
2. אני רוצה לבנות את המערך $show_state כאשר הוא מקבל ערכים של המערך $state_arr[$tmp] בצורה ראנדומלית.
הקוד הזה הוא חלק מהקוד הבא:
קוד PHP:
 //Set the small banners in an array
 
$len count($state_arr);
 
$cou 0;
 if(
$len 0)
 {
  for(
$i=0;$i<60;$i++)
  {
   
$tmp rand(0$len-1);
   while(
$state_arr[$tmp] == "no"
   { 
    
$tmp rand(0$len-1);
   }     
   if(
$cou <= $len
   { 
    
$show_state[$i][0] = $state_arr[$tmp];
    
$show_state[$i][1] = "s";
    
$state_arr[$tmp] = "no";
    
$cou++;
   }
   else 
   {
    
$show_state[$i][0] = "http://$domain/banners/empty.jpg";
    
$show_state[$i][1] = "s";
    
$state_arr[$tmp] = "no";
   }
  }
 }
 else
 {
  for(
$i=0;$i<64;$i++)
  {
   
$show_state[$i][0] = "";
   
$show_state[$i][1] = "s"
  }
 } 

בתחילת הקוד(זה לא מופיע לך כי זה לא ממש רלוונטי...) קלטתי את כל הבאנרים הקטנים(בגלל זה האות s) מהמסד נתונים ושמתי אותם בתור המערך state_arr.
אחר כך פיזרתי אותם בצורה ראנדומלית בתוך המערך show_state(אתה יכול להתעלם מהחלק הדו מיימדי במערך הזה - הוא רק לצורך בדיקה אם הבאנר הוא קטן או גדול. זה לא משנה לנו כרגע...).
אחרי שפיזרתי את כל הבאנרים, בדקתי אם נשארו לי מקומות בתוך המערך(הגודל שלו הוא 60) שלא מולאו בבאנרים בגלל שלא היו קיימים באנרים כאלה(בעברית פשוטה, המערך state_arr יותר קטן מהמערך show_state), אם אכן נשארו מקומות כאלה, מיליתי אותם בבאנרים ריקים.

3. אני אנסה לעשות את מה שהצעת. אני מקווה שזה יעזור.
4. הסברתי בתשובה 2.
תודה רבה רבה ולילה שקט,
נתנאל.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

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

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

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

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



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

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

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

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