השבוע אני מפציצה (+: ועכשיו עבודה ברקע

noa 21

New member
השבוע אני מפציצה (+: ועכשיו עבודה ברקע

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

Xעמרי

New member
לא

אבל את אולי יכולה לחלק את המשימות ולבצע אותן באמצעות AJAX וכך להרויח משהו דומה.
 

noa 21

New member
כלומר...

כשאני עדיין בצד לקוח, לשלוח את המשימות למקומות שונים באמצעות AJAX או אחרי ששלחתי את הנתונים לצד שרת, שם לפצל אותם בדרך כלשהיא ? תודה
 

pitoach

New member
בניגוד למה שעומרי אמר התשובה היא כן כמובן

בכלל במחשבים התשובה היא תמיד כן (אם יש את הידע והאמצעים) ככששואלים אם אפשר לעשות משהו
עדיין לא מצאתי שאלה שהתשובה שלה היא לא אם אי אפשר להגיע ליעדים בדרך אחת אפשר בדרך אחרת. אם אין ידע או יכולת אז אפשר להשיג אותם או לפנות שיש לו אותם (אם אפשר להשיג אותו) ____ לעצם השאלה: ____ ברור שהתשובה היא כן והנה כמה דרכים פשוטות לביצוע ממחשבה של כמה שניות: אפשרות א: הפעלה של אפליקציה חיצונית על ידי תוכנית ה WEB שלך לפני שהיא מעבירה לעמוד הבא התוכנית החיצונית מבצעת את מה שאת רוצה שיבוצע ברקע ובינתיים מעבירים לעמוד הבא במילים מוכרות יותר למפתחים ודוגמה נפוצה זה שימוש בשירות WEB או בשיטה החדשה WCF (וכמובן אפשר בעוד כמה מליון טכנולוגיות ודרכים אחרות) או אפילו הפעלה פשוטה של קובץ EXE של תוכנית קטנה על ידי העמוד הנוכחי (אפילו ב ASP קלאסי יצא לי לבצע את זה כמה פעמים עם תוכניות EXE קטנות כמו למשל פיתחתי פעם מערכת ניהול משרד מרחוק אבל ההדפסות הלקוח רצה שיצאו במדפסת במשרד... כך שהוא ישב בבית וביצע מה שרצה ובמשרד המדפסת הוציאה נתונים במקביל בצורה א-סינכרונית לעבודה שלו) ** אין שום קשר ל Thread דרך אגב וניהול Thread - ים זו פעוהל המתקדמת לטעמי הרבה יותר ממה שצריך לבצע פעוהל פשוטה זו. אפשרות ב: שימוש כמו שהוצע בעבודה א-סינכרונית הנשלחת מצד לקוח או מילים יותר מוכרות כמו שנאמר לך שימוש ב AJAX והשיטה: בעמוד החדש אליו הגעת מפעילים פונקציית AJAX המבצעת כל מה שאת רוצה ברקע ובינתיים הגולש כבר רואה את העמוד החדש אפשרות ג: שימוש במסגרות (HTML פשוט). הפעלת כמה עמודים מעמוד אחד כשאחד מהם פועל ברקע בצורה נסתרת בעוד הלקוח רואה את האחר .... אפשרות ד: שימוש בהגדרות שרת (בהגדרות שרת IIS את יכולה לקבוע כי בהרצת קובץ מסויים או אתר מסויים תופעל ברקע תוכנה כלשהי - תוכנית זו יכולה להפעיל כל מה שרצית ברקע) בקיצור... אני יכול למצוא עם עוד כמה דקות מחשבה עוד כמה עשרות דרכים אני חושב שהבנת שהתשובה היא כמובן שכן ויש עשרות אפשרויות. זו העבודה האמיתי של המפתח... להיות בעל היכולת למקוריות לפתרון בעיות ולהגעה לפתרונות
(זה החלק הכיף בפיתוח), או יכולת שימוש בגוגל והעתקה של דברים קיימים :(. כמובן שאין לנו אפיון מלא של המערכת וזהו תפקיד המפתח ובעיקר המאפין למצוא את הדרך שמתאימה לך מכל הדרכים שמצליחים לפתח או למצוא בגוגל/פורומים
* אני חוזר ומעיר שאת לא סוגרת שירשורים וזה דיי משגע כשרוצים לעזור לך! אני שם לך הודעת הסבר וכשאת מגיעה לסיום ומצליחה (כניראה) מבחינתך את מתעלמת מההודעה מי ששם את ההודעה צריך לדעת אם מישהו קרא אותה ואם הבעיה הסתימה או שיש צורך בעוד עזרה למשל במקרה שלי אני מנסה לעקוב אחרי שירשורים שהתחלתי לעזור בהם עד לסיום מוצלח של הבעיה וכשאני רואה שההודעה האחרונה היא שלי אני מבין שהשירשור עדיין פתוח ויש להמשיך לעקוב אחריו אנא עזרי לנו לעזור לך! סגרי שירשורים לפני שפותחים את השירשור הבא
 

noa 21

New member
או קיי...אבל...

אלה נראים לי פתרונות לא שגרתיים, כאלה שתיישם רק במקרים חריגים. אתן 2 דוגמאות ספציפיות ואשמח אם תגיד לי מה היית עושה במקומי במקרים אלו. לצורך העניין 2 המקרים מדברים על מצב בו הגולש מסיים תהליך של ביצוע הזמנה באתר וצריך לקבל עמוד "תודה". בעת שליחת הטופס האחרון לשרת, מתבצעת הסליקה ולאחר מכן נשלח אימייל לגולש. ביצוע שליחת המייל לוקח לפעמים מס שניות ומעכב את הצגת התשובה לגולש - זו בעיה ראשונה. מה היית עושה על מנת לשלוח אימייל מבלי לעכב את התשובה לגולש ? בעיה שניה, לאחר סיום ביצוע ההזמנה אני גם צריכה לשלוח נתונים ל-WEBSERVICE על מנת שיעדכן במקום אחר שבוצעה הזמנה. חשוב לי מאוד לחכות לתשובה מה-SERVICE שהכל בוצע בהצלחה, איך היית מבצע את המשימה הזו ? גם היא יכולה לקחת עד מס' שניות. תודה
 
למעלה