Single Page App: מערכת ניתוב
-
אני בונה אפליקציית עמוד יחיד, ובעברית - Single Page Application :lol:
כלומר, אני משתמש בajax כדי לטעון את התוכן המשתנה ומטמיע אותו במקום המתאים, בלא צורך לרפרש את הדף בכל פעם.הבעיה כמובן היא - שהניתוב בשורת הכתובת לא משתנה, וכך אם בטעות משהו מרפרש את הדף - זה מחזיר אותו לעמוד הראשי. וכן אם המשתמש רוצה להעתיק כתובת של עמוד מסוים בו הוא נמצא - הוא לא יכול..
לצורך כך קיימות ספריות שבעצם יודעות למפות את כתובות הURL לתצוגות הרצויות, באנגולר יש את angular.rotue או משהו דומה.
השאלה האם יש משהו שאני יכול לשלב בפרוייקט ASP.NET MVC5 שאני בונה?תודה רבה מראש!!
פורסם במקור בפורום CODE613 ב25/02/2016 21:23 (+02:00)
-
אני כמעט בטוח שיש ספריות עצמאיות שזו כל מטרתם.
זה הרי תכונת צד לקוח
http://netfree.link למשל בנוי ללא אנגולר ויש בו את הניתוב הזה.פורסם במקור בפורום CODE613 ב25/02/2016 21:49 (+02:00)
-
אני בונה אפליקציית עמוד יחיד, ובעברית - Single Page Application :lol:
כלומר, אני משתמש בajax כדי לטעון את התוכן המשתנה ומטמיע אותו במקום המתאים, בלא צורך לרפרש את הדף בכל פעם.הבעיה כמובן היא - שהניתוב בשורת הכתובת לא משתנה, וכך אם בטעות משהו מרפרש את הדף - זה מחזיר אותו לעמוד הראשי. וכן אם המשתמש רוצה להעתיק כתובת של עמוד מסוים בו הוא נמצא - הוא לא יכול..
לצורך כך קיימות ספריות שבעצם יודעות למפות את כתובות הURL לתצוגות הרצויות, באנגולר יש את angular.rotue או משהו דומה.
השאלה האם יש משהו שאני יכול לשלב בפרוייקט ASP.NET MVC5 שאני בונה?תודה רבה מראש!!
תלך על זה.
https://github.com/angular-ui/ui-router
בלי לשאול שאלות.
וזה לא משנה איזה צד שרת אתה.
פורסם במקור בפורום CODE613 ב25/02/2016 21:58 (+02:00)
-
http://stackoverflow.com/questions/1867205/ajax-how-to-change-url-by-content?rq=1
http://stackoverflow.com/questions/1457/modify-address-bar-url-in-ajax-app-to-match-current-state?rq=1
http://stackoverflow.com/questions/3658320/asp-net-mvc-update-address-bar-with-ajax-linkפורסם במקור בפורום CODE613 ב25/02/2016 22:03 (+02:00)
-
תלך על זה.
https://github.com/angular-ui/ui-router
בלי לשאול שאלות.
וזה לא משנה איזה צד שרת אתה.
קיבלתי. התקנתי את זה בפרוייקט, אולם איך אני משתמש בזה?
כל הAPI שלהם הם משתמשים ברכיבים של אנגולר, כמו $stateProvider, $urlRouterProvider וכדו'.
אשמח להסבר לבור שכמוני..ותודה רבה לכל העונים!
פורסם במקור בפורום CODE613 ב25/02/2016 22:42 (+02:00)
-
אני מציע (ותבדוק אם זה רלוונטי בשבילך) דרך יותר פרימיטיבית.. להוסיף לכל תוכן משמעותי שאתה מוסיף על ידי ajax - שאתה רוצה שיהיה אפשרות להגיע אליו דרך שורת הכתובת - מאפיין (attribute) של id עם שם וכך הדפדפן מוסיף לו באופן אוטומטי בשורת הכתובת את הסימן # עם הid שנתת לו וככה אפשר להגיע אליו. כמובן תצטרך שהשרת שלך יאפשר להכנס לכתובת הזו גם כשמרפרשים, ולא ינפיק הודעת שגיאה, וזה מתאים לך רק אם אתה מוסיף תוכן html לדף ולא אם אתה מוסיף משהו אחר.
נראה לי שזה יעבוד אפילו שהדף בבסיס לא היה עם התגית והid הזה - תקן אותי אם אני טועה.פורסם במקור בפורום CODE613 ב25/02/2016 23:42 (+02:00)
-
אני מציע (ותבדוק אם זה רלוונטי בשבילך) דרך יותר פרימיטיבית.. להוסיף לכל תוכן משמעותי שאתה מוסיף על ידי ajax - שאתה רוצה שיהיה אפשרות להגיע אליו דרך שורת הכתובת - מאפיין (attribute) של id עם שם וכך הדפדפן מוסיף לו באופן אוטומטי בשורת הכתובת את הסימן # עם הid שנתת לו וככה אפשר להגיע אליו. כמובן תצטרך שהשרת שלך יאפשר להכנס לכתובת הזו גם כשמרפרשים, ולא ינפיק הודעת שגיאה, וזה מתאים לך רק אם אתה מוסיף תוכן html לדף ולא אם אתה מוסיף משהו אחר.
נראה לי שזה יעבוד אפילו שהדף בבסיס לא היה עם התגית והid הזה - תקן אותי אם אני טועה.אני לא בטוח שזה עובד, אבל נראה לי שזה לא העניין.
הנקודה היא שהמתשמש יוכל להכניס ישירות את הכתובת ולקבל את הדף המבוקש. ע"י סולמית בסוף הכתובת אפשר לנווט למיקום כלשהו בדף, אבל המיקום הזה צריך להיות קיים. כשאני משתמש בajax זה אומר שהתוכן הזה לא בהחלט נמצא וצריך לטעון אותו מהשרת.. לכן צריך ליצור מנגנון ניתוב שכאשר מזינים את הכתובת המסוימת הוא ידע לקרוא לפונקצית JS שהיא תדע איזה שאילתה צריך לבצע בשביל להביא את התוכן הרצוי.
כמובן שאפשר לממש זאת ידנית, אך קיימות ספריות מוכנות לשם כך - כמו UI-ROUTER, אלא שאני צריך עדיין להבין איך אני משתמש בהם כשהצד קליינט שלי אינו אנגולרי..רחמים, מה שהצלחתי להבין מהקישורים שהבאת זה שהם עוסקים בשאלה כיצד לשמור את הדף שהמשתמש ביקר בו כבר, כך שאח"כ הוא יוכל להכניס את הURL והדפדפן יטען לו אותו מההיסטוריה שלו.. אולם, אני מחפש שגם אם הוא עדיין לא ביקר בו - הוא ידע להציג לו את התוכן הרצוי..
תודה רבה!!
פורסם במקור בפורום CODE613 ב26/02/2016 09:38 (+02:00)
-
רחמים, מה שהצלחתי להבין מהקישורים שהבאת זה שהם עוסקים בשאלה כיצד לשמור את הדף שהמשתמש ביקר בו כבר, כך שאח"כ הוא יוכל להכניס את הURL והדפדפן יטען לו אותו מההיסטוריה שלו.. אולם, אני מחפש שגם אם הוא עדיין לא ביקר בו - הוא ידע להציג לו את התוכן הרצוי..
יש פה את החלק שבצד הלקוח ויש את החלק שבצד השרת,
החלק שבצד הלקוח: שכאשר תוכן הדף משתנה על ידי ajax שגם בשורת הכתובות יהיה שינוי כל שהוא כדי שהלקוח יוכל להעתיק את הכתובת החדשה
והחלק בצד שרת: שכאשר השרת יקבל את הכתובת החדשה הנ"ל הוא ידע גם לפתוח את הדף אם הוא לא פתוח וגם להריץ את הajax השייך לאותה כתובת.
בקישורים שהבאתי מלמדים כיצד לבצע את צד לקוח, אם הבנתי נכון הם בעצם אומרים לעשות משהו דומה למה שאמר 5566brs
את צד שרת תוכל לבצע ב MVC על ידי הגדרת אילוצים ב Routing System ראה כאןפורסם במקור בפורום CODE613 ב26/02/2016 10:43 (+02:00)
-
תשתמש עם אנגולר בכל המערכת . והחיים שלך יהיו קלים יותר.
ואל תתעסק עם שטיות לבדוק מחלקות כאלו או אחרות.
פורסם במקור בפורום CODE613 ב26/02/2016 12:40 (+02:00)
-
תשתמש עם אנגולר בכל המערכת . והחיים שלך יהיו קלים יותר.
ואל תתעסק עם שטיות לבדוק מחלקות כאלו או אחרות.
אתה מוכן להפסיק לקלקל אותו?!
זה שארכיטקט התפשר על הפסקת אש, עוד לא הופך אותך לצודק! :mrgreen: :mrgreen: :mrgreen:אברהם, נסה להציץ גם פה.
הא, ואל תשכח לבוא לספר מה יצא...פורסם במקור בפורום CODE613 ב26/02/2016 16:33 (+02:00)
-
זה לא מנושא האשכול אבל כאן כותב דברים מפחידים על אנגולר [3 חודשי לימוד בקורס מסודר! לא פחות]
גם פה הודעה 6 והלאה, יש מחסרונות האנגולר.
גם פה ועוד אחדבנוגע לינון פרק
הבחור מתהפך לא מעט
ואני אישית עוד לא ראיתי משהו רציני שהוא בנה
אולי בגלל שעם גירסה 2 דברים משתנים.פורסם במקור בפורום CODE613 ב26/02/2016 16:38 (+02:00)
-
זה לא מנושא האשכול אבל כאן כותב דברים מפחידים על אנגולר [3 חודשי לימוד בקורס מסודר! לא פחות]
גם פה הודעה 6 והלאה, יש מחסרונות האנגולר.
גם פה ועוד אחדעזוב אותך משטויות.
רק אנגולר גירסה אחת. תשאל את מי שמכיר את זה. נכון שלכל דבר יש חסרונות. אבל לאנגולר יש את הכי פחות חסרונות.
פורסם במקור בפורום CODE613 ב27/02/2016 19:34 (+02:00)
-
@רחמים
זה לא מנושא האשכול אבל כאן כותב דברים מפחידים על אנגולר [3 חודשי לימוד בקורס מסודר! לא פחות]עזוב אותך משטויות.
רק אנגולר גירסה אחת. תשאל את מי שמכיר את זה. נכון שלכל דבר יש חסרונות. אבל לאנגולר יש את הכי פחות חסרונות.
למה גירסה 1 שהוא בדרך להיות לא רלוונטי?
פורסם במקור בפורום CODE613 ב27/02/2016 20:23 (+02:00)
-
אכן, אני בשאיפה ללמוד אנגולר (התחלתי קצת..),
(רחמים - עם כל החסרונות שציינת, אך למערכת שעניינה ניהול תרומות ולקוחות וכדו' אנגולר מאד מתאים).
אולם מדובר באתר שכבר רוב התצוגות שלו קיימות (בrazor), כך שלבנות את הכל מחדש באנגולר - זה לא שייך כרגע.
השאלה האם אפשר שרק המסגרת החיצונית תהיה אנגולרית (כלומר העמוד הראשי), אך את כל התצוגה הוא יקבל מהשרת?
בעצם הקונטרולר של כל קישור יקבל בסה"כ את הכתובת לשרת, ויציג את התוכן בדף? כי נראה לי שאנגולר הוא "סגור" ואני לא יכול להריץ פונקציות של js שלא דרכו, כך שאע"פ שהוא יציג את התוכן, אך אח"כ כל הפעולות שנעשות בצד הלקוח - לא יעבדו...תודה.
פורסם במקור בפורום CODE613 ב27/02/2016 21:09 (+02:00)
-
@mat
@רחמים
זה לא מנושא האשכול אבל כאן כותב דברים מפחידים על אנגולר [3 חודשי לימוד בקורס מסודר! לא פחות]עזוב אותך משטויות.
רק אנגולר גירסה אחת. תשאל את מי שמכיר את זה. נכון שלכל דבר יש חסרונות. אבל לאנגולר יש את הכי פחות חסרונות.
למה גירסה 1 שהוא בדרך להיות לא רלוונטי?
לדעתי גירסה אחד תמשיך להיות והיא תתפצל מגירסה 2 כלומר יהיו הרבה שלא ירצו לעבור לגירסה 2. וזה ישאר כפרוייקט נפרד.
פורסם במקור בפורום CODE613 ב27/02/2016 22:48 (+02:00)
-
ולמה גרסה 1 עדיפה?
פורסם במקור בפורום CODE613 ב27/02/2016 22:49 (+02:00)
-
ולמה גרסה 1 עדיפה?
כי עכשיו גירסה 2 לא פעילה. אז זה לא קיים מבחינתי.
כי עכשיו אני צריך לתכנת. לא מחר.
בכל מקרה ברגע שמשנים יותר מידי. זה כבר לא אנגולר. זה כבר נהיה משהו אחר.
וזה יהיה הדעה של הרבה אנשים. לכן אני חושב שזה מה שיהיה.פורסם במקור בפורום CODE613 ב27/02/2016 23:05 (+02:00)
-
@אהרן
ולמה גרסה 1 עדיפה?כי עכשיו גירסה 2 לא פעילה. אז זה לא קיים מבחינתי.
כי עכשיו אני צריך לתכנת. לא מחר.
בכל מקרה ברגע שמשנים יותר מידי. זה כבר לא אנגולר. זה כבר נהיה משהו אחר.
וזה יהיה הדעה של הרבה אנשים. לכן אני חושב שזה מה שיהיה.אם אין עדיפות בשפה עצמה
אז זו לא בהכרח המלצה נכונה בשביל מי שלומד עכשיו
אני טועה?פורסם במקור בפורום CODE613 ב27/02/2016 23:09 (+02:00)
-
avr העצה שלי מאז ומעולם בנושא הזה, החזק את הלוגיקה חזק בצד השרת!!! וכתוב בצד הלקוח איך שאתה רוצה. תוכל תמיד להחליף, כי צד הלקוח זה בבחינת "מלבוש", צד השרת זה בבחינת "גוף" והדטה בייס בבחינת "נפש" את הבגדים תמיד אפשר להחליף, הגוף מתחלף לאיטו במהלך החיים, ואילו הנפש זה הדטה והזיכרון תמיד נשאר לכן צריך אדם להקפיד מאוד על הדטה בייס שזהו קודש הקודשים. עד כאן בפילוסופיה.
לגופו של עניין.
כפי שזה נראה היום אנגולר כאן כדי להישאר, עדיין לא נמצא תחליף לפתרונות שלה שהם מקיר לקיר, וה"חסרונות" שמציינים בכל הקישורים שהביא רחמים, הם כקליפת השום לעומת היתרונות שהיא הביאה לעולם, שזה אבסטרקציה, אבסטקרציה, ועוד פעם אבסטרקציה ואבסטרקציה. אסור להתעלם מזה!!! זהו כל עולמו של המתכנת האנושי (כן אני יודע שיש מתכנתים שכותבים אלף פעם "אסור לדבר באמצע השיעור" שלזה אנחנו קוראים משפט הקוף המקליד אחר כך לקוחות אומרים "מה אתה רוצה הוא כתב תוכנה שעובדת" אוי לאותה בושה...)אז ברור שזה קשה ללמידה, וכי ראית דבר טוב שהוא קל ללמידה??? אבל יש קשה ללמידה, ויש רע ללמידה, שזה 2 דברים נפרדים, ואסור לערבב ביניהם. אנגולר היא לא "רעה" ללמידה במובן זה שאין לה שיטתיות וסדר (הדוגמאות של ToCode מביישות מאוד ואין לייחס להן חשיבות) זאת שיטה עמוקה וחזקה מאוד, ולכן היא קשה ללמידה.
אני חוקר את הנושא כבר חצי שנה. וזה מזכיר קצת את אלו שטוענים ל"חסרונות" מנוע הבנזין, כאשר האלטרנטיבה היא לחזור לסוסים ועגלות. החלום של כולם זה פרפטום מובילה סוג של פריימוורק שרק מתחשק לך משהו והוא מציג לך את זה בלי שום מאמץ, זה לא יקרה נקודה, גם לא בעולם התוכנה.
אז חזק ואמץ, אל תערוץ ואל תחת כי עמך ה' אלוקיך בכל אשר תלך.
פורסם במקור בפורום CODE613 ב28/02/2016 23:34 (+02:00)
1/36