標記檔案: JavaScript

快速而方便地: 創建使用其餘的 SharePoint 網站

有很多的周圍顯示資源如何執行此操作, 但我找不到一個全面轉到連結, 所以在這裡我們是.

您可以創建使用其他 API 的 SharePoint 網站。  這裡是一個完全被烘烤的示例:

<!--
    SiteRequestForm.html: 收集資訊,並為該使用者創建一個網站.
-->

<中心>
<>
    <tr>
        <運輸署>網站名稱:</運輸署>
        <運輸署><輸入 類型="文本" 名稱="SiteName" id="SiteName" /></運輸署>
    </tr>
    <tr>
        <運輸署 colspan="2">
            <輸入 類型="提交" id="CreateSiteButton" 價值="創建網站" />
        </運輸署>
    </tr>
</>
</中心>

<腳本 src="../Plugins/jquery-1.11.0.min.js"></腳本>

<腳本>
var CreateSiteLogicContainer = {

    createSiteData: {
            "參數": {
                __metadata: { "類型": "SP。WebInfoCreationInformation" },
                Url: "Paultest1",
                標題: "Paultest1",
                說明: "其餘創建 web 由保羅!",
                語言: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 功能 () {

        jQuery.support.cors = 真正的;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").瓦爾();
        
        $.ajax({
            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();

</腳本>

當成功時, 你得到一個 JSON 資料包中像這樣的反應:

image

我的主要思想和知識包括從:

  • 此方法使用 jQuery。  以我為例, 我 jQuery 庫位於"....../ 外掛程式."  你會想要更改,使其指向您最喜愛的 JQ 位置.
  • 您可以複製並粘貼到頁面上的內容編輯器 Web 組件的那整個程式碼片段,它應該可以正常。  你會想要改變的 API 呼叫的結束點,請確保您正確地引用 JQ.
  • 該 URL 是相對於您的 API 的終結點。  以我為例, 它創建子網站下方 https://bigapplesharepoint.com
  • 您不需要提供一個內容長度. 一些博客文章和 MSDN 文檔意味著你做, 但對我來說會自動發生, 我猜這是正在處理的 $雖然調用本身.
  • 這條線有需要提供避免"禁忌"的回應: "X-RequestDigest": $("# __REQUESTDIGEST").瓦爾().  還有其他的方法去做, 但這是很好。  提供此快捷方式的博客,我失去了聯繫。  H/T 到你, 神秘的博客!

好運,希望這可以説明一個人出去.

</結束>

undefined訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

快速和簡單: SharePoint 其餘部分調用僅返回 100 記錄

我一直在一個公共的面對 web 網站為在我 SharePoint 實踐 紐約 和它使用大量的 JavaScript 和其餘部分調用來顯示內容.

期間主線發展, 我只是創建具有小的資料集 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 或者,所以在一年中,我們已添加到此清單的行。  如果它變得笨拙, 我們可以實現一些分頁在路上.

</結束>

undefined訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

可憐的人在 JavaScript 中的緩存

[TL;博士版本: 使用 cookie 來存儲非同步調用的結果; 立即呈現過去非同步調用的結果,然後在頁面載入後驗證它們。]

我一直在 SharePoint 的內聯網網站為用戶端的功能, 除其他事項外, 程式化的二級導航功能表選項都通過週期性老自訂清單管理。  想法是在用戶端獲取,不影響或受影響,由它推出的全球導航控制"他們的"網站的功能表.

(有件事令人難以置信顛覆有關添加指向一個 HTML 檔案,載入一些 CSS 和 JS,從根本上改變幾乎一切有關網站的行為......,但那是另一篇文章為 CEWP)

這個漂亮的簡單的代碼:

痛點在這裡是每次有人點擊該網站的頁面之一, 該使用者的 web 瀏覽器中伸出來獲取清單中的項。  一旦開發完成並測試已被證明是穩定和完整的東西, 此調用是不必要的多 99% 因為功能表中很少發生變化的時間。  它也有一個很奇怪的 UI 影響這是共同的在這個勇敢新世界超 ajaxy web 網站的 — — 頁上呈現,並只然後不會呈現在功能表。  它是緊張不安,我認為讓人分心。  和抖動. 所以, 緩存。 

我修改邏輯難耐:

  • 查找包含功能表中,如我上次讀取它的瀏覽器中的 cookie
    • 如果發現, 立即呈現它。  不要等待頁面完成載入。  (你需要確保你的 HTML 擺放在這裡, 但它並不難做).
  • 等待頁面完成載入,並進行非同步調用以載入了功能表項目從清單中使用休息或 lists.asmx 或不管
  • 比較我對 cookie
    • 如果它與匹配, 停止
    • 否則, 使用 jQuery 的, 如果動態填充一群 <李>中 <ul>
  • 使用 CSS 來做的所有格式
  • 利潤!

你們中的一些會說, "嘿! 沒有真正緩存會在這裡因為你反正讀功能表中 每一次.”  你說得對 — — 我不會給伺服器任何種類的斷裂。  但因為該調用是非同步和頁面的初始後會發生完全呈現 HTML 有效載荷, "感覺"更能回應使用者。  功能表中呈現漂亮一樣頁上繪製。  如果功能表中發生了變化, 使用者因此而遭受抖動重新繪製功能表, 但僅此一次.

有一些方法可以使此緩存功能更加有效和伺服器在同一時間幫忙:

  • 在"cookie 緩存"是有效的最低限度的規則中 24 小時或一些其他時限. 只要沒有過期的 cookie, 使用 cookie 的功能表快照和從來沒打伺服器.

哦那是所有現在我想說 :). 

如果任何人有任何聰明的想法在這裡我想要知道他們.

最後 — — 這種技術可以用於其他的東西。  此客戶機的頁的各種頁面都有一些資料驅動的事情, 其中許多不斷變化的相對較少 (像每週或每月一次).  如果您針對特定地區的功能, 您可以從本地 cookie 存儲拉內容並立即呈現給回應更快的使用者介面。  感覺速度更快,使用者即使不保存在伺服器任何週期。  你 可以 通過一些條件和觸發器決定廢除此 cookie 本機快取保存伺服器週期。  這就是所有情景和富有藝術氣息的東西和真正最大的樂趣 :). 

</結束>

undefined訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin