Tag Archives: จาวาสคริปต์

ง่าย และรวดเร็ว: สร้างไซต์ SharePoint โดยใช้ส่วนที่เหลือ

มีมากมายของทรัพยากรสถานที่แสดงวิธีการทำเช่นนี้, แต่รอยเชื่อมโยงครอบคลุมไปที่, ดังนั้นที่นี่เรามี.

คุณสามารถสร้างไซต์ SharePoint โดยใช้ API เหลือ  นี่เป็นตัวอย่างที่อบทั้งหมด:

<!--
    SiteRequestForm.html: รวบรวมข้อมูล และสร้างไซต์สำหรับผู้ใช้.
-->

<ศูนย์>
<ตาราง>
    <tr>
        <td>ชื่อเว็บไซต์:</td>
        <td><ป้อนข้อมูล ชนิด= "ข้อความ" ชื่อ"SiteName =" รหัส"SiteName =" /></td>
    </tr>
    <tr>
        <td colspan= "2">
            <ป้อนข้อมูล ชนิด= "ส่ง" รหัส= "CreateSiteButton" ค่า= "สร้างเว็บไซต์" />
        </td>
    </tr>
</ตาราง>
</ศูนย์>

<สคริปต์ src="../Plugins/jquery-1.11.0.min.js"></สคริปต์>

<สคริปต์>
var CreateSiteLogicContainer = {

    createSiteData: {
            "พารามิเตอร์": {
                __metadata: { "ชนิด": "SP.WebInfoCreationInformation" },
                Url: "Paultest1",
                ชื่อเรื่อง: "Paultest1",
                คำอธิบาย: "ส่วนที่เหลือสร้างเว็บ โดยพอล!",
                ภาษา: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: เท็จ
            }
    },

    createSite: ฟังก์ชัน () {

        jQuery.support.cors = จริง;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").val();
        
        $.อาแจ็กซ์({
            url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            วิธีการ: "ลงรายการบัญชี",

            หัวข้อ: {
                "ยอมรับ": "แอพลิเคชันเจซัน; odata = verbose",
                "ชนิดเนื้อหา": "แอพลิเคชันเจซัน;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            ข้อมูล: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            ประสบความสำเร็จ: ฟังก์ชัน () { การแจ้งเตือน("ความสำเร็จ""); },
            ข้อผิดพลาด: ฟังก์ชัน () { การแจ้งเตือน("ข้อผิดพลาด"); }

        });
    },

    wireUpForm: ฟังก์ชัน () {
        $("#CreateSiteButton").คลิก(ฟังก์ชัน () {
            การแจ้งเตือน("จะลอง และสร้างเว็บไซต์");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</สคริปต์>

เมื่อประสบความสำเร็จ, คุณได้รับแพคเก็ตเจซันตอบเช่นนี้:

image

หลักความคิดของฉันและ learnings จากนี้รวม:

  • วิธีการนี้ใช้ jQuery  ในกรณีของฉัน, ไลบรารี jQuery อยู่ ".../ ปลั๊กอิน "  คุณต้องการเปลี่ยนแปลงที่ชี้ไปยังตำแหน่งของ JQ โปรด.
  • คุณสามารถคัดลอก และวางที่ส่วนย่อยของโค้ดทั้งหมดใน Web Part ตัวแก้ไขเนื้อหาบนหน้ากระดาษ และควรทำเพียงปรับ  คุณจะต้องเปลี่ยนแปลงจุดสิ้นสุดของการเรียก API และแน่ใจว่าคุณอ้างอิง JQ อย่างถูกต้อง.
  • URL เป็นปลายทางของ API  ในกรณีของฉัน, มันเป็นการสร้างไซต์ย่อยภายใต้ https://bigapplesharepoint.com
  • คุณไม่จำเป็นเพื่อให้เนื้อหามีความยาว. บางบทความบล็อกและ MSDN เอกสารหมายถึงการที่คุณทำ, แต่เกิดให้ฉันโดยอัตโนมัติ, ซึ่งผมถือว่าการจัดการ โดยการเรียก.ajax $เอง.
  • บรรทัดนี้เป็นสิ่งจำเป็นเพื่อหลีกเลี่ยงการตอบสนองที่ "ต้องห้าม": "X-RequestDigest": $("#__REQUESTDIGEST").val().  มีวิธีอื่นที่, แต่นี่คือสวยดี  ฉันได้สูญเสียการเชื่อมโยงกับบล็อกที่ให้ทางลัดนี้  H/T คุณ, blogger ลึกลับ!

โชคดีและความหวังนี้ช่วยให้คนออก.

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ง่าย และรวดเร็ว: SharePoint เหลือโทรคืนเท่านั้น 100 เรกคอร์ด

ฉันได้ทำงานบนเว็บไซต์หันสาธารณะสำหรับการปฏิบัติของฉัน SharePoint ที่นี่ใน นิวยอร์ก และใช้มากเรียก JavaScript และอื่น ๆ เพื่อแสดงเนื้อหา.

ในระหว่างการพัฒนา mainline, ฉันสร้างชุดข้อมูลขนาดเล็กมีเพียง 10 หรือดึงให้ แถวในรายการที่กำหนดเองและเรียกส่วนที่เหลือของฉันทั้งหมดจาก  เมื่อฉันชนอัพรายชื่อให้ข้อมูลการทดสอบคาดว่าจะเติบโตกี่ร้อยแถว, พบว่า ก็คือการตรง 100 แถวที่ส่งกลับจึงเรียกส่วนที่เหลือของฉัน.

นี้เป็นสิ่งง่ายมากให้อยู่  ในกรณีของฉัน (และผมเชื่อว่าส่วนใหญ่), เริ่มต้นเหลือเรียกการ SharePoint (และอาจ เป็นมาตรฐานอุตสาหกรรม?) เที่ยวกลับ 100 แถว  กลับเริ่มต้นมากกว่า, ใช้พารามิเตอร์ $top บนโทรศัพท์ของคุณ, เช่นใน:

รับ /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/รายการ?$เลือก = ID,ชื่อเรื่อง,ประเภท/ชื่อเรื่อง,Blog_x0020_Author/ชื่อ เรื่อง,DatePublished,BlogSummary&$ขยาย = Blog_x0020_Author,ประเภท&$กรอง =&$ด้านบน = 9999

ฉันเลือก 9999 ในกรณีนี้ ตั้งแต่ผมรู้ว่า growth-wise, ไม่มีมากกว่า 200 หรือเพื่อ เพิ่มแถวลงในรายการนี้ในปี  ถ้ามัน ungainly, เราสามารถนำบางเพลงถนน.

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

คนดีของแคใน JavaScript

[TL;รุ่น DR: ใช้คุกกี้เพื่อเก็บผลลัพธ์ของการเรียกต่างเวลา; แสดงผลผ่านมาต่างเวลาเรียกทันที และตรวจสอบได้หลังจากโหลดหน้า]

ฉันได้ทำงานบนไซต์ SharePoint ของอินทราเน็ตสำหรับไคลเอนต์ซึ่ง, ในสิ่งอื่น ๆ, เป็นสุกใสรองนำตัวเลือกที่เมนูจัดการผ่านรายการที่กำหนดเองเก่าปกติ  ความคิดเป็นว่า ไคลเอนต์ได้รับการควบคุมเมนูของเว็บไซต์ "ของ" โดยไม่กระทบหรือรับผลกระทบจากการนำโลกดับโดย.

(มีทุกสิ่งอย่างเหลือเชื่อ subversive เกี่ยวกับการเพิ่ม CEWP ที่ชี้ไปยังแฟ้ม HTML ที่โหลด CSS และ JS บางพื้นฐานเปลี่ยนเกือบทุกอย่างเกี่ยวกับการทำงานของเว็บไซต์... แต่ที่ใช้สำหรับการลงรายการบัญชีอื่น)

รหัสสำหรับนี้ง่ายสวย:

  • รอหน้าเสร็จสิ้นการโหลด และทำต่างเวลาการเรียกโหลดรายการเมนูจากรายการโดยใช้ส่วนที่เหลือ หรือ lists.asmx หรืออะไรก็ตาม
  • ใช้ jQuery, ใส่พวงแบบไดนามิกหาก <li>ของภายในเป็นหลัก <ul> (ดูคริสเตียน Pinder บทที่นี่สำหรับคำอธิบายพี่ tecnnique นี้)
  • ใช้ CSS ในการทำทั้งหมดการจัดรูปแบบ
  • กำไร!

ที่นี่จุดเจ็บคือทุกครั้งที่คนฮิตหนึ่งหน้าของเว็บไซต์, เบราว์เซอร์ของผู้ใช้ได้ถึงจะได้รับสินค้าจากรายการ  เมื่อเดฟสมบูรณ์ และทดสอบ ได้พิสูจน์สิ่งที่มั่นคง และสมบูรณ์, สายนี้มีความจำเป็นมากกว่า 99% เวลาตั้งแต่เมนูไม่ค่อยเปลี่ยนแปลง  มีผล UI แปลกซึ่งมีทั่วไปในโลกใหม่นี้กล้าไฮเปอร์ ajaxy เว็บไซต์ – ทำหน้า และหลังจากนั้น ไม่เมนูแสดง  ภาพกระตุก และรบกวนในมุมมองของฉันได้  และภาพกระตุก. ดังนั้น, แค 

ฉันปรับเปลี่ยนแบบตรรกะ thusly:

  • หาคุกกี้ในเบราว์เซอร์ที่ประกอบด้วยเมนูล่าสุดอ่านว่า
    • ถ้าพบ, แสดงทันที  ไม่รอหน้าเสร็จสิ้นการโหลด  (คุณต้องแน่ใจว่าวาง HTML ของคุณเชิญที่นี่, แต่ไม่ยาก).
  • รอหน้าเสร็จสิ้นการโหลด และทำต่างเวลาการเรียกโหลดรายการเมนูจากรายการโดยใช้ส่วนที่เหลือ หรือ lists.asmx หรืออะไรก็ตาม
  • เปรียบเทียบสิ่งที่ผมมีกับใคร
    • ถ้ามันตรงกับ, หยุด
    • มิฉะนั้น, ใช้ jQuery, ใส่พวงแบบไดนามิกหาก <li>ของในตัว <ul>
  • ใช้ CSS ในการทำทั้งหมดการจัดรูปแบบ
  • กำไร!

บางท่านจะบอกว่า, "เฮ้! ไม่มีจะจริงแคที่นี่เนื่องจากคุณกำลังอ่านเมนูต่อไป ทีเดียว.”  และคุณขวา – ฉันกำลังไม่นำเซิร์ฟเวอร์ใด ๆ ที่ทำลาย  แต่เนื่องจากการโทรอยู่ต่างเวลา และเกิดขึ้นหลังจากหน้าของเริ่มต้น ส่วนของข้อมูลของ HTML เต็มสภาพ, "รู้สึก" มากกว่าตอบสนองต่อผู้ใช้  เมนูทำสวยมากวาดหน้า  ถ้าเมนูเกิดขึ้นกับการเปลี่ยนแปลง, ผู้ใช้จะต้องมีภาพกระตุกใหม่วาดของเมนู, แต่เท่าที่เวลาหนึ่ง.

มีบางวิธีจะทำให้การแคนี้มีประสิทธิภาพ และช่วยออกเซิร์ฟเวอร์ในเวลาเดียวกัน:

  • ใส่ในกฎที่ว่า "แคชคุกกี้" ถูกต้องอย่างน้อย 24 ชั่วโมงหรือเวลาอื่น ๆ. ตราบใดที่มีคุกกี้ไม่หมดอายุ, ใช้ snapshot ของเมนูของคุกกี้ และไม่เคยตีเซิร์ฟเวอร์.

ดี...ที่ทั้งหมดที่มาถึงใจขณะนี้ :). 

ถ้าใครมีความคิดฉลาดใด ๆ ที่นี่ ฉันจะรักรู้ว่าพวกเขา.

และสุดท้าย – สามารถใช้เทคนิคนี้สำหรับสิ่งอื่น ๆ  ไคลเอนต์นี้แล้วจำนวนข้อมูลขับเคลื่อนกิจกรรมต่าง ๆ หน้า, หลายของพวกเขาเปลี่ยนแปลงค่อนข้างบ่อย (เช่นสัปดาห์ละหนึ่งครั้งหรือเดือนละครั้ง).  ถ้าคุณกำหนดเป้าหมายพื้นที่เฉพาะของฟังก์ชัน, คุณสามารถให้ UI ที่ตอบสนองมากขึ้น โดยดึงเนื้อหาจากเก็บคุกกี้ในเครื่อง และแสดงผลทันที  มันรู้สึกเร็วต่อผู้ใช้แม้ว่าคุณกำลังไม่บันทึกเซิร์ฟเวอร์ใด ๆ รอบ  คุณ สามารถ บันทึกวงจรเซิร์ฟเวอร์ โดยการตัดสินใจในบางเงื่อนไขและทริกเกอร์จะทำให้แคภายในคุกกี้  นั่นคือในสถานการณ์ทั้งหมด และสิ่งที่แสนยาวนานและสนุกมากที่สุด :). 

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin