נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
בניית אתרים
RSS UnderWarrior Forums : RSS בניית אתרים
נושא

נושא: [מדריך] הזמן נוצר ב-X שניות - ASP

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 07 June 2005 בשעה 15:35 | IP רשוּם
ציטוט SBD

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

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

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

קוד:
Dim StartDate, EndDate

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

קוד:
StartTime = date()

אבל, שימו לב שהפונקציה DATE מחזירה רק את התאריך הנוכחי, ואילו אנו צריכים גם את הזמן, לכן נשתמש בפונציה NOW:

קוד:
StartTime = now()

OK לאחר השורה הזאת אמור לבוא הקוד של הדף, ולאחר מכן אנחנו צריכים לשמור את התאריך [והזמן] של אותו רקג [סוף טעינת הדף]:

קוד:
'ur code.....
EndTime = now()

טוב עכשיו הגיע החלק של החיסור, אנחנו צריכים למצוא את ההפרש בין שני המשתנים, לשם כך נעזר בפוקנציה מובנת בשם DateDiff, פונצקיה זו הינה פונקציה שנועדה לשם השוואת שני תאריכים והחזרת ההפרש ביניהם, התחביר שלה מאוד פשוט ואם אתם רוצים ללמוד אותה אז הנה לכם: http://msdn.microsoft.com/library/default.asp?url=/library/e n-us/script56/html/vsfctcstr.asp  בכל מקרה:

קוד:
response.write "Page generate in " & DateDiff("s",StartTime,EndTime) & " Sec."

OK, ולסיכום:

קוד:
<%
 Dim StartTime, EndTime

 StartTime = now()

 'CODE......

 EndTime = now()
 response.write "Page generate in " & DateDiff("s",StartTime,EndTime) & " Sec."
%>

טוב מי שינסה את הסקריפט יראה שכמעט תמיד נקבל תשובה של 0 וזה בגלל שאנחנו מתייחסים לשניות וכל דף ASP ממוצע נטען בפחות משניה או שנים לכן סקריפט כזה לא יעזור לנו, כלומר אנחנו צריכים פונקצית זמן שתחזיר גם את המאיות של אותו זמן נתון, אך לצערנו אין פונקציה כזאת ב-ASP [בדוק!], אז מה עושים?

טוב למזלנו ב-JS יש פונקציה כזאת, היא לא בדיוק מחזירה את הזמן הנתון עם מאיות, אלא מחזירה את מספר המאיות מה-1 לינואר 1970 בחצות, אבל זה עדין טוב לנו מכיוון שמספר המאיות האלה בכל מקרה ישתנה בין שני זמנים שונים....ולכן נצטרך לשלב JS עם ASP, לא קשה כמו שזה נשמע, בתור התחלה ניצור פונקציה ב-JS ונגדיר אותה ככה שהיא תפעל על השרת ולא על הלקוח [יותר מדויק...]:

קוד:
<script language="javascript" runat="server">
<!--
 function Time()
 {
  var dDate = new Date();
  return dDate.getTime();
 }
-->
</script>

הקוד הוא די פשוט הפוקנציה מחזירה את מספר המאיות מהתאריך [לעיל] ועכשיו נכתוב את הקוד ב-ASP:

קוד:
<%
 Dim StartTime, EndTime

 StartTime = Time()

 'CODE......

 EndTime = Time()

 Response.Write "Page generate in " & (EndTime-StartTime)/100 & " Sec."
%>

זהו זה הסוף, אני רק יוסיף שאפשר לעשות את אותו הדבר עם ידי שני דברים:

1. רכיב חיצוני - יעלה לכם כסף, וגם בעייתי לפעמים להתקנה במיוחד עם השרת הוא לא שלכם

2. http://www.4guysfromrolla.com/webtech/122799-1.shtml - אני אישית לא אהבתי ולפעמים גם יוצר פלט לא רצוי, אבל מי שמעוניין :) [זה רק ב-ASP...]



__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
pitbull363
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 03 June 2005
משתמש: מנותק/ת
הודעות: 102
נשלח בתאריך: 07 June 2005 בשעה 16:19 | IP רשוּם
ציטוט pitbull363

אוקיי, תודה על המדריך, אני אנסה
חזרה לתחילת העמוד הצג את כרטיס החבר של pitbull363 חפש הודעות אחרות של pitbull363
 

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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