カテゴリーアーカイブ: Java スクリプトの設定

HTTP 406 SharePoint の残りの部分の端点に対する角度の $http.get を使用するときのエラー

更新プログラム: 情報のこの素晴らしい作品を指摘したマルク広告 ndersson: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. たくさん説明します。 :).

それが今まで、最悪、ブログの記事のタイトルがあります。! Anyhoo.

通常 O365 インスタンスに対して私のプロトタイピングの全力します。. 私は他の誰に影響を与える心配する必要はありませんので、私の個人的なインスタンスがある私. 余談として-覚えている我々 がモス – で私たちのラップトップ上の仮想マシンの周り実施呼び出し SQL Server, IIS, ハイパー V 対を決定します。. VMWare? Anyhoo.

角はこの環境を使用してアプリを開発していた, 他のものの間で, この:

$http.get(serverUrl)
.成功(関数(データ, ステータス, ヘッダー, 設定) {

var getLinksResponse = データ;

getLinksResponse.value.forEach(関数(その結果) {

// およびそう泡

これは 2 つの異なる SharePoint オンライン環境でうまく働いていた. ただし, とき私の同僚は Cloudshare インスタンスにそれを移植, 彼が得ていた、 HTTP 406 エラー (私はこれまで 1 つを得たの初めてだった, ... イェーイ, 思います). 我々 は研究のビットを行なったし、「受け入れる」ヘッダーがオフだったことに気づきました. SharePoint のオンラインは完全に満足していた:

受け入れる: アプリケーション/json

Cloudshare のインスタンスが (プレム上 SP であります。, 仮想サーバーでホストされています。) 古典的なしたかった"odata verbose ="同様の追加:

受け入れる: アプリケーション/json;odata = 詳細

それを修正するには, 我々 はそのヘッダーを追加:

var 構成 = {ヘッダー: {
' 受け入れる ': ' アプリケーション/json;odata verbose ='
}
};

$http.get(serverUrl,設定)
.成功(関数(データ, ステータス, ヘッダー, 設定) {

var getLinksResponse = データ;

getLinksResponse.value.forEach(関数(その結果) {

// およびそう泡

処分したこと、 406, しかし、それはまた、応答の形式を変更. 詳細は... 詳細. (ハハ!) 多くの変更が必要であり、ここで最終結果:

var 構成 = {ヘッダー: {
' 受け入れる ': ' アプリケーション/json;odata verbose ='
}
};

$http.get(serverUrl,設定)
.成功(関数(データ, ステータス, ヘッダー, 設定) {

var getLinksResponse = データ;

getLinksResponse.d.results.forEach(関数(その結果) {

// およびそう泡

これだけになって、 30 私たちの分の問題, だから私たちは尽きてください。. うまくいけば、誰かがこの役に立つ見つける.

</終了>

角度が IE9 のブートス トラップに失敗します。

私は遊んでてきた Angular.js と最後の長い間、私の人生のため, IE9 を起動する角度のアプリは私ができなかった。  彼らはすべて IE11 で正常に動作が IE9 は、中かっこと同じようなビットを見せ.

周りを検索し、誰にも彼の問題について文句を見つけることができなかった。  それがクロムメッキで見事に働きました, IE11, IE9 だけではないです。.

IE コンソール私に与えていたエラーこのような事実によって投げられました。:

SEC7111: 解像度で HTTPS セキュリティが侵害されます。://ieframe.dll/forbidframing.htm

エラーが私に、角度をダウンロードするいくつかの問題または必要なその他のライブラリがあったことを考えていた。  結局, これは問題ではなかった.

インターネットの周り突っついによって, ついに見つかったを検索するために必要なフレーズは「ブートス トラップ」と、ブートス トラップは失敗しているように思われました。  最後に, 私の問題は私がチェックした私 <html> ng アプリ属性を持つタグ, ように:

<html ng-アプリ ="MatrixApp">

よく, IE9 のため動作しませんでした。  代わりに, 私はすべて、残りのラップ、HTML の <体> div とその方法の参照 MatrixApp 内.

問題を解決.

うまくいけば、これは誰かがいくつかの悲しみを節約します。.

</終了>

意識の高まり / JavaScript フレームワークの導入

私の同僚, Javed アンサリ (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, もちろんです, 年の命の恩人をされているし、思うのでしていきます).

どのような人々 を使用しています。? 彼らに焦点を当てた Microsoft のツーリング (CSOM / JSOM) または角に向かってよりを移動, ノックアウト, エンバー, など?

これらマイクロソフト以外のフレームワークに向かって成長しているバイアスをあります。. MSFT ものは使用しにくく、だと思う, ほぼ限りの旧式のサーバー側 dev としての学習曲線を必要とします。.

ここではコメントを投稿または上で ビッグ ・ アップル SharePoint 議論したい場合 (ビッグ ・ アップルの良い議論のより多くの可能性があります。).

</終了>

SharePoint クイック起動の相対 Url で厄介な問題を克服します。

サイド リンク バー ナビゲーション、他の日へのリンクを追加したいし、私に言った SharePoint:

image

純粋なテキストのバージョンがあります。:

URL が有効で、有効な文字のいずれかで始まることを確認します (番号記号 (#) またはフォワード スラッシュ (/)) または、有効なプロトコルのサポート (たとえば, ' http://’, ' https://’, ' ファイル://’, ' ftp://’, ' mailto:’, ' ニュース:’).

"オエッと pox!"私は言った.

Java スクリプトの設定を使用してクイック起動で知られているリンクを見つけるし、その動作をオーバーライドするこの回避策は.

これをテストするには, thusly、テスト サイトに新しいリンクを追加します。:

image

JQuery を使用されます。. それを解決するには, いくつかの JavaScript と jQuery のお好きな技法を使用してページ上に、このようなコードの行を取得します。:

 

$(ドキュメント).準備ができて( 関数 () {

    $("は:含まれています(' URL 置換をテスト ')").クリック(関数 () { アラート("変更されたクリック動作!"); 戻り値 false;});

});

ボブのあなたの叔父さんと.

JQuery セレクターを検索すべて <は> 「テスト URL 置換」は、その名前タグ. 検索を調整することによってあなたのリンクとこのようなします可能性があります。.

] をクリックして(関数() ユーザーがクリックしたときに、SharePoint が行っている何よりも優先されます。. 「False を返す」または他のそれはあなたのものを行うしようとして href こともを確認してください。, これはほぼ確実にあなたの目標.

これは、SharePoint のオンライン環境でテストする必要がありますがうまく動作 2010 以前のバージョンでも.

</終了>

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