תג ארכיון: JavaScript

מהיר וקל: יצירת אתר SharePoint באמצעות מנוחה

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

באפשרותך ליצור אתר SharePoint באמצעות ה-API של מנוחה.  הנה דוגמא אפוי לגמרי:

<!--
    SiteRequestForm.html: לאסוף מידע וליצור אתר עבור המשתמש.
-->

<מרכז>
<טבלה>
    <. tr>
        <td>שם האתר:</td>
        <td><קלט סוג= "טקסט" שם= "SiteName" מזהה= "SiteName" /></td>
    </. tr>
    <. tr>
        <td colspan= "2">
            <קלט סוג= "להגיש" מזהה= "CreateSiteButton" ערך= "יצירת האתר" />
        </td>
    </. tr>
</טבלה>
</מרכז>

<קובץ script src="../Plugins/jquery-1.11.0.min.js"></קובץ script>

<קובץ script>
var CreateSiteLogicContainer = {

    createSiteData: {
            "פרמטרים": {
                __metadata: { "סוג": ". SP.WebInfoCreationInformation" },
                כתובת Url: "Paultest1",
                כותרת: "Paultest1",
                תיאור: "שנוצרו על-ידי מנוחה אינטרנט על-ידי פול!",
                שפה: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: שווא
            }
    },

    createSite: פונקציה () {

        jQuery.support.cors = נכון;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").ול();
        
        $.אייאקס({
            כתובת url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            שיטה: "פוסט",

            כותרות: {
                "מקבל": "יישום/json; odata = מפורט",
                "סוג תוכן": "יישום/json;odata = מפורט",
                "X-RequestDigest": $("#__REQUESTDIGEST").ול()
            },

            נתונים: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            הצלחה: פונקציה () { התראה("הצלחה"); },
            שגיאה: פונקציה () { התראה("שגיאה"); }

        });
    },

    wireUpForm: פונקציה () {
        $("#CreateSiteButton").לחץ(פונקציה () {
            התראה("עומד לנסות וליצור את האתר.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</קובץ script>

כאשר הוא מוצלח, אתה מקבל מנה JSON בתגובה ככה:

image

שלמדנו מן הזה כלול ומחשבות המפתח שלי:

  • גישה זו משתמש jQuery.  במקרה שלי, הספרייה jQuery שלי ממוקם "./ תוספים. "  אתה רוצה לשנות את זה כדי להצביע על מיקום JQ האהוב שלך.
  • באפשרותך להעתיק ולהדביק את אותו מקטע שלם אל Web Part של עורך התוכן בדף, זה אמור לעבוד טוב.  אתה רוצה לשנות את נקודת הקצה של השיחה API, ודא שאתה מציין JQ כראוי.
  • כתובת ה-URL הוא יחסי נקודת הקצה של ה-API שלך.  במקרה שלי, יוצר אתרי המשנה מתחת https://bigapplesharepoint.com
  • אתה לא צריך לספק תוכן-אורך. כמה פוסטים ו MSDN המסמך מרמז שאתה עושה, אבל קרה לי באופן אוטומטי, ואני משער מטופל בידי השיחה .ajax $ עצמה.
  • שורה זו נדרשת כדי למנוע תגובה "אסורים": "X-RequestDigest": $("#__REQUESTDIGEST").ול().  יש דרכים אחרות לעשות את זה, . אבל זה די נחמד...  איבדתי את הקישור לבלוג סיפק קיצור דרך זה.  H/T לך, בלוגר מסתורי!

מזל טוב, מקווה שזה יעזור למישהו.

</קצה>

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

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

מהיר ופשוט: SharePoint השאר קוראים רק החזרה 100 רשומות

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

במהלך הפיתוח mainline, ליצור dataset קטן עם רק 10 או אז שורות רשימה מותאמת אישית וכל השיחות שלי לנוח הוציא משם.  פעם אחת אני מקפיץ את הרשימה יש כמה מאות שורות של נתונים כדי לבדוק את הצמיחה הצפויה, מצאתי כי היה מקבל בדיוק 100 השורות המוחזרות על השיחות שלי לנוח.

. זה דבר פשוט מאוד לכתובת  במקרה שלי (ואני מאמין ברוב המקרים), ברירת המחדל מנוחה קורא SharePoint (אולי כמו תקן תעשייתי?) החזרה 100 שורות.  כדי להחזיר יותר מאשר ברירת המחדל, השתמש בפרמטר $top לטלפון שלך, כמו ב-:

להשיג /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/פריטים?$בחר = מזהה,כותרת,קטגוריות/כותרת,Blog_x0020_Author/כותרת,DatePublished,BlogSummary&$הרחב = Blog_x0020_Author,קטגוריות&$מסנן =&$העליון = 9999

. בחרתי 9999 במקרה זה מאז ידעתי את זה growth-wise, . לא יהיו יותר 200 או אז ששורות שנוספו לרשימה זו בשנה.  אם זה הופך ובאדישות, נוכל ליישם שמידה מסוימת של החלפה במורד הכביש.

</קצה>

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