タグのアーカイブ: Java スクリプトの設定

迅速で簡単な: 残りの部分を使用して SharePoint サイトを作成します。

多くのリソースを示すの周りは、これを行う方法です。, 包括的な移動するリンクを見つけることができなかった, ので、ここで我々 は.

REST API を使用して SharePoint サイトを作成することができます。  ここでは完全に焼かれた例です。:

<!--
    SiteRequestForm.html: 情報を収集し、ユーザーのサイトを作成します。.
-->

<センター>
<テーブル>
    <tr>
        <td>サイト名:</td>
        <td><入力 タイプ"テキストを =" 名前"SiteName =" id"SiteName =" /></td>
    </tr>
    <tr>
        <td colspan="2">
            <入力 タイプ="を提出" id"CreateSiteButton =" ="サイトの作成" />
        </td>
    </tr>
</テーブル>
</センター>

<スクリプト src="../Plugins/jquery-1.11.0.min.js"></スクリプト>

<スクリプト>
var CreateSiteLogicContainer = {

    createSiteData: {
            パラメーター」": {
                _metadata: { "の種類": "。WebInfoCreationInformation" },
                Url: "Paultest1",
                タイトル: "Paultest1",
                説明: "残りの部分作成 web ポール!",
                言語: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 関数 () {

        jQuery.support.cors = true;

        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 ドキュメントはあなたが行うことを意味します, しかし私のために自動的に起こった, 私と仮定 $$.ajax 呼び出し自体によって処理されています。.
  • この行が「禁止」の応答を避けるために必要です。: 「X RequestDigest": $(「# __REQUESTDIGEST").ヴァル().  それを行う他の方法があります。, しかし、これはかなりいいです。  このショートカットを提供するブログへのリンクを失いました。  あなたに H/T, 神秘的なブロガー!

幸運は、この誰かを役に立てば幸い.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

迅速かつ簡単な: SharePoint 残りの呼び出しのみを返します 100 レコード

私は私の SharePoint の練習ここでの公共直面している web サイトに取り組んでいます。 ニューヨーク 使用して 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 またはので行 1 年でこのリストに追加されます。  不格好になる場合, 道のいくつかのページングを実装できます。.

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin

JavaScript で貧乏人をキャッシュします。

[TL;DR のバージョン: 非同期呼び出しの結果を格納するクッキーを使用します。; 過去の非同期呼び出しの結果を直ちに表示し、ページの読み込み後にそれらを検証します。]

私は取り組んできたイントラネットの SharePoint サイト、クライアントの機能, 他のものの間で, 様式化された 2 番目のナビゲーション メニュー オプションは、正規の古いカスタム リストを介して管理されます。  アイデアは、クライアントに影響を与えるまたはそれが出すグローバル ナビゲーションによって影響されることがなく「自分」のサイトのメニューを制御するを取得します。.

(別のポストには根本的にサイトの挙動についてのほぼすべてを変更するいくつかの CSS と js ファイルを読み込みます HTML ファイルを指す CEWP を追加する方法について信じられないほど破壊的な何かがあります。)

この非常に単純なコード:

咽頭痛スポットここでは、誰も 1 つのサイトのページをヒットするたびに, そのユーザーの web ブラウザーは、リストから項目を取得に達しています。  安定し、完全な開発が完了し、テストすることが証明されています, この呼び出しは必要以上 99% まれ、メニューから時間を変更します。  ハイパー ajaxy web サイトのこの勇敢な新しい世界で共通である奇妙な UI に影響しています – ページがレンダリングされ、だけにしては、メニューのレンダリングします。  神経質であり、私の見解で気が散る。  神経質. だから, キャッシュ。 

Thusly、ロジックを変更:

  • 最後に読んだようにメニューを含む、ブラウザーで cookie を探します
    • 場合が見つかりました, すぐにレンダリングされます。  ページの読み込みが完了するを待ってはいけない。  (あなたの HTML は、ここで戦略的に配置を確認する必要があります。, 行うは難しいではないです。).
  • ページの読み込みが完了し、残りの部分または lists.asmx または何を使用してリストからメニュー項目をロードするを呼び出す非同期に待機します。
  • 私はクッキーに対して得た比較します。
    • それと一致する場合, 停止
    • それ以外の場合, jQuery を使ってください。, 場合束を動的に読み込みます <李>では <ul>
  • すべての書式設定に CSS を使用します。
  • 利益!

あなたのいくつかと言うとしています。, "ねえ! とにかく、メニューを読んでいるのでここに実際キャッシュことはできません。 ひとつひとつの時間.”  あなたは正しい – を与えていないよ、サーバー任意区切りの種類。  しかし、HTML ペイロードを完全にレンダリングの呼び出し非同期は、ページの初期後に起こる, それは「感じ」より、ユーザーに対応します。  メニュー レンダリングはかなり限り、ページを描画します。  変更する場合は、メニュー, ユーザーがメニューの神経質な再描画を受ける, その 1 つの時間だけが.

このキャッシュをより効果的し、同時に、サーバーを手助けするいくつかの方法があります。:

  • 「Cookie のキャッシュ」は最小の有効な規則に含める 24 時間またはいくつか他の時間枠. 有効期限が切れた cookie がない限り、, クッキーのメニューのスナップショットを使用して、サーバーをヒットしません。.

それはすべて今気になることも. :). 

誰もがここの巧妙なアイデアを持っている場合私はそれらを知っているみたい.

そして最後に-この手法は他のもの使用ことができます。  このクライアントのページのさまざまなページにデータ駆動型のものの数, それらの多くは比較的稀に変更します。 (週に一度あるいは月に一度のような).  特定の機能領域を対象する場合, ローカル cookie ストアからコンテンツを引っ張ってくるとすぐにレンダリングして、応答性の高い UI を与えることができます。  ない任意のサイクル、サーバーを保存している場合でも、それユーザーに速く感じる。  あなた ことができます。 このローカル cookie のキャッシュを無効にするいくつかの条件とトリガーの決定によって、サーバ ・ サイクルを保存します。  それはすべての状況と芸術的なものと最も本当に楽しい :). 

</終了>

undefined私のブログを購読します。.

私は Twitter の上に従ってください。 http://www.twitter.com/pagalvin