ארכיון קטגוריה: JavaScript

HTTP 406 שגיאה בעת שימוש $http.get זוויתי נגד נקודות הקצה של SharePoint מנוחה

עדכון: מארק AD ndersson הצביע נפלאה שכזו פרטי: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. זה מסביר הרבה :).

אולי זו הכותרת הגרוע ביותר של הבלוג אי פעם! בכל אופו.

אני בדרך כלל עושה את כל שלי שטנץ נגד מופע O365. יש לי מופע אישי שלי כך לא צריך להיות מודאג להשפיע על מישהו אחר. במאמר מוסגר – זוכר מתי נתקשר נשאו סביב מכונות וירטואליות על המחשבים הניידים שלנו עם מוס – SQL Server, IIS, מחליטים vs Hyper-V. VMWare? בכל מקרה...

שפיתחתי אפליקציה באמצעות זוויתי בסביבה זו שעושה, בין היתר, זה:

$http.get(serverUrl)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

זה היה עובד בסדר גמור בסביבות שני שונות SharePoint online. עם זאת, כאשר עמיתי מועבר זה מופע Cloudshare, הוא התחיל HTTP 406 שגיאה (מי היה הפעם הראשונה שקיבלתי אי פעם את זה, אז... איזה כיף, אני מניח). עשיתי קצת מחקר ואנו הכותרת "מקבל" היה את. SharePoint online היה מרוצה.:

קבל: יישום/json

אבל המופע cloudshare (מהי SP-פרם, מתארח בשרת וירטואלי) רציתי הקלאסי "odata = מילולי" הוסיף גם כן:

קבל: יישום/json;odata = מפורט

כדי לתקן את זה, הוספנו את הכותרת ככזה:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.value.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

כי יש להיפטר 406, אבל זה גם שינה את הפורמט של התגובה. זה היה יותר. מפורט. (haha!) עוד שינויים נדרשו והנה התוצאה הסופית:

var config = {כותרות: {
'קבל': ' יישום/json;odata = מפורט '
}
};

$http.get(serverUrl,config)
.הצלחה(פונקציה(נתונים, מצב, כותרות, config) {

var getLinksResponse = נתונים;

getLinksResponse.d.results.forEach(פונקציה(תוצאה) {

// הלאה וקצף אז

. זה רק הפך 30 דקה בעיה עבורנו, אז היה לנו מזל. אני מקווה שמישהו ימצא את זה שימושי.

</קצה>

זוויתי נכשל Bootstrap ב- IE9

אני משחק עם Angular.js האחרונה זמן תוך ועבור בחיי., אני לא יכול לקבל שלי apps זוויתי להשיק ב- IE9.  כולם פועלים בסדר IE11 אבל IE9 רק יראה מסולסלים וסיביות דומה.

אני חיפשתי בסביבה ולא מצאתי מישהו מתלונן על הבעיה שלו.  זה עבד מצויין ב- Chrome, IE11, פשוט לא IE9.

נזרקתי העובדה כי המסוף IE נותן לי שגיאות כמו זה:

SEC7111: HTTPS האבטחה נפרצת על ידי מיל://ieframe.dll/forbidframing.htm

שגיאה זו גרמה לי לחשוב. היה שם איזה בעיה להוריד את זוויתי או ספריות אחרות שהייתי זקוק לה.  כפי שמסתבר, . זה לא היה הבעיה.

מאת לרחרח את האינטרנט במלואו, סוף סוף גיליתי כי הביטוי שהייתי צריך לחפש אחר היה "האתחול" ונראה כי אתחול נכשל.  בסופו של דבר, הבעיה שלי היתה כי היו מעוטרים שלי <html> תג עם התכונה ng-app, כמו ב-:

<html ng-app = "MatrixApp">

. טוב, . זה לא עבד עבור IE9  במקום זאת, ארזתי כל שאר ה-HTML ב- <הגוף> בתוך תג div והפניות MatrixApp ככה.

. הבעיה נפתרה.

בתקווה זה חוסך למישהו כמה צער.

</קצה>

מודעות גוברת / אימוץ של JavaScript במסגרות

עמיתי, ג'אווד אנצארי (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), כתב בלוג סיכום קצר על מסגרות הוא אוהב, או לפחות משתמש עם SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

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

מה אנשים משתמשים? הם מתמקדים יותר אבזור של מיקרוסופט (CSOM / JSOM) או העברה של יותר לכיוון זוויתי, נוקאאוט, גחלת, ועוד?

. יש לי דעה קדומה הגוברת כלפי אלה במסגרות שאינן של Microsoft. לדעתי, שהדברים MSFT היא קשה יותר ויותר לעבוד עם, דרישת כמעט באותה מידה של עקומת למידה כמו בסגנון ישן בצד השרת dev.

לכתוב תגובה כאן או אצל SharePoint התפוח הגדול אם אתה רוצה לדון (התפוח הגדול יהיו סבירות יותר של החלטות טובות).

</קצה>

להתגבר על בעיה מעצבנת עם כתובות Url יחסיות ב- SharePoint מהיר השיגור

רציתי להוסיף קישור הניווט ' הפעלה מהירה ' ביום ההוא ולא SharePoint סיפר לי:

image

טקסט טהור גרסה של זה:

להבטיח כי כתובת ה-URL חוקית וכי מתחיל גם תו חוקי (סימן מספר (#) או נטוי (/)) או פרוטוקול נתמכת בתוקף (לדוגמה, ' http://’, ' https://’, "קובץ://’, ' ה-ftp://’, "mailto:’, ' חדשות:’).

"בלך, אבעבועות!"אמרתי.

זה פתרון אפשרי הוא להשתמש ב- JavaScript כדי למצוא קישור הידוע בהשקה מהירה, לעקוף את אופן הפעולה שלו.

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

image

השתמשתי jQuery. כדי לפתור את זה, לקבל קצת JavaScript jQuery אל הדף בטכניקה האהוב שלך, עם שורת קוד כזה:

 

$(המסמך).מוכן( פונקציה () {

    $("של:מכיל('בדיקה החלפת כתובת URL')").לחץ(פונקציה () { התראה("לחץ על שינוי התנהגות!"); החזרה שווא;});

});

בוב הוא הדוד שלך.

בורר jQuery מוצא כל <של> תג יש "Test URL חלופי" בשם שלה. ייתכן שתרצה למצוא-מנגינה זה בהתאם את הקישור וכאלה.

.Click(פונקציה() דורסת מה של SharePoint הייתי עושה כאשר המשתמש לוחץ. ודא כי אתה "יש להחזיר false" או אחר היא לעשות את הדברים שלך, ואז לנסות הדבר href מדי, . וזה קרוב לוודאי לא המטרה שלך.

זה נעשה, מבחן בסביבת SharePoint online אבל אמור לעבוד טוב 2010 מוקדם מדי.

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

האיש המסכן של אחסון במטמון בג'אווה סקריפט

[TL;ד ר גירסה: שימוש בקבצי cookie כדי לאחסן את תוצאות הקריאות אסינכרונית; לעיבוד תוצאות הקריאות האחרונות האסינכרונית מיד, לאחר מכן לאמת אותם לאחר טעינת העמוד.]

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

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

הקוד עבור זה פשוט יפה:

הנקודה כאוב זה, בכל פעם שמישהו פוגע באחד העמודים באתר, דפדפן האינטרנט של המשתמש הוא מושיט יד כדי לקבל פריטים מהרשימה  לאחר dev השלמת הבדיקות הוכח שהדברים יהיו יציבים ולהשלים, קריאה זו אינה נחוצה יותר 99% מהזמן מאז התפריט משתנה לעיתים רחוקות.  יש לו גם השפעה UI מוזר אשר נפוץ בהעולם של אתרי אינטרנט היפר-ajaxy – מלבדך, רק אז התפריט רינדור.  זה מרצד מסיח את הדעת לדעתי.  ולחוץ.. כל כך, אחסון במטמון. 

התאמתי את הלוגיקה נוהג כך:

  • לחפש קובץ cookie בדפדפן המכיל את התפריט כפי בפעם האחרונה קראתי את זה
    • אם נמצאו, לדקלם את זה מיד.  לא רוצה להמתין הטעינה.  (אתה צריך לוודא כי ה-HTML שלך נמצא במיקום אסטרטגי כאן, אבל זה לא קשה לעשות).
  • להמתין לסיים את הטעינה אסינכרונית להתקשר כדי לטעון את פריטי התפריט מתוך רשימה באמצעות מנוחה או lists.asmx או מה שלא יהיה
  • להשוות בין מה יש לי נגד העוגיה
    • אם זה מתאים, . תפסיק
    • אחרת, בעזרת jQuery, באופן דינמי לאכלס חבורה אם <li>ב <ul>
  • שימוש ב- CSS כדי לעשות את כל העיצוב
  • רווח!

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

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

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

טוב, זה כל מה שעולות לי לראש כרגע :). 

אם למישהו יש רעיונות חכם פה אני אשמח להכיר אותם.

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

</קצה>

undefinedמנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin