הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איך ניתן לכתוב משהו כשהסקריפט נטען? (https://hosts.co.il/forums/showthread.php?t=25504)

eXtaZa 02-07-06 20:17

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

RS324 02-07-06 20:18

אתה יכול לעשות זאת רק בעזרת JS.
תחפש בגוגל loading page script

משהו כזה...אני בטוח שיהיה לך הרבה תוצאות שיתרמו לך הרבה.

ד"א

אם לוקח לדף הרבה זמן לעלות, אני חושב שכדאי שתבדוק את הקוד של הדף
ותייעל אותו

eXtaZa 02-07-06 20:23

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

miniature 03-07-06 00:36

תעשה DIV עם position:absolute ועם visibility:visible שנקרא לו "load" לדוג', ועוד DIV ששם יהיה כל מה שעושה את החישוב עם visibility:hidden שנקרא לו "abc" לדוג', ותעשה ב BODY כך:
HTML קוד:

<body onLoad="document.getElementById('load').style.visibility='hidden';document.getElementById('abc').style.visibility='visible'">

בניה 03-07-06 07:10

ב"ה


בתחילת הדף(לפני שהקטע קוד הארוך מתחיל לרוץ)
תשלח להדפסה את מה ש miniature אמר ואחרי זה תעשה
http://il2.php.net/manual/en/function.ob-flush.php
ואז תכניס את הקטע קוד שלוח הרבה זמן.

eXtaZa 03-07-06 08:32

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

ובמה עוזר לי ob_flush?

בניה 03-07-06 08:38

ציטוט:

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

ובמה עוזר לי ob_flush?

ב"ה


זה ידפיס את ההתחלה של המסמך לפני ששאר החלקים סימו להטען.

eXtaZa 03-07-06 08:44

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

eLad 03-07-06 09:57

ציטוט:

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

לא בדיוק הבנתי מה אתה רוצה לעשות - האם פתרון ברמת צד לקוח:
הצגת DIV עם כיתוב "טוען" עד ש DIV אחר מסיים את טעינתו (נניח DIV שמכיל המונמון תמונות)

קוד:

function fLoading() {               
 document.getElementById("TheWholeSite").style.visibility = "visible";               
 document.getElementById("TheLoadingDiv").style.visibility = "hidden";       
}

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

visibility:hidden
או פתרון ברמת צד שרת עם Flush -
כשהשרת מעבד את הדף שלך (צד שרת), אז הוא לא שולח את כל הדף רק בסיומו ללקוח אלא שולח חלקים ממנו גם בזמן עיבוד (כדי שהגולש לא יחכה מספר רב של שניות עד שיופיע לו משהו). כדי להשתמש ב Flush אתה מגדיר את ה Buffer כ True (כלומר, שייאגור את הדף עד שטעינתו תסתיים ואז ישלח את הפלט HTML לדפדפן כדי שיפענח אותו) ואז בנקודות הקריטיות שאתה רוצה (נניח לאחר לולאה שרצה מ i=0 עד i=1e6) אתה מדפיס למסך נניח "סיימתי לולאה מ 1 עד מיליון" ולאחר מכן Flush שמורה לשרת - חביבי, שלח לדפדפן את העמוד עד כה.


כל הזמנים הם GMT +2. הזמן כעת הוא 18:07.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ