2

SharePoint 2007 のコンテンツ エディター Web パーツには、さまざまな JavaScript ソースを使用してページに複数のタグを挿入する機能が含まれています。

なんらかの理由で、JavaScript ソース (API) の 1 つをロードするために、約 4 ~ 5 分かかり、数回の更新が必要です。通常、これは朝、SharePoint サイトに初めてアクセスしたときにのみ発生します。

この問題は以前はより頻繁に発生していましたが、その後、スクリプト ソース コードを含む関数のリロードをトリガーする一連のボタンをページに配置しました (以下のコード ブロックを参照してください: Herve Tourpe の功績によるものです)。

なぜこれが起こっているのか、誰かが私に洞察を与えることができますか?

詳細については、MIT Simile Timeline API を使用しています。通常、朝にサイトにログオンすると、「Timeline」が定義されていないというエラーがページに表示されます (これは明らかに、API ファイルの最も重要なクラスです)。

私にとって、これは、タイムラインを実行する関数が API のロードを十分に待機していないか、次の関数に何らかの問題があることを意味します。

function includeJSScript(p_file) {
  // before we insert this script, we need to check if it already exists
  var bAlreadyExists = false;
  var scripts = document.getElementsByTagName('script');

  for (var i = 0; i < scripts.length; i++) {
    if (scripts[i].src == p_file) {
    bAlreadyExists = true;
    break;
    }
  }

  if (!bAlreadyExists) {
    var v_script = document.createElement('script');
    v_script.type = 'text/javascript';
    v_script.src = p_file;
    document.getElementsByTagName('head')[0].appendChild(v_script);
  }
}
4

1 に答える 1

0

あなたの問題はタイミングであり、一般的にはコンテンツエディタのWebパーツだと思います。

問題は、パーツが最後にレンダリングされ、SharePointでDOMがオーバーロードされていることです。つまり、十分な速度で読み込まれないことがあります(jQueryを使用するChromeでこの問題が頻繁に発生しました)。朝にそれをより頻繁に経験するのは、SharePointのキャッシュが原因です。

それを修正する方法はいくつかあり、解決するまでそれぞれを解決することができます。

まず、速度が遅いため、CodeplexでSPWakeUp3を使用してください。これにより、サイトとスクリプトが「ウェイクアップ」(つまりキャッシュ)されます。SPは24時間ごとにキャッシュをダンプします-これで修正されます。

スクリプト自体の場合:

これを試してください:パーツからコードを取り出し、テキストファイルに入れて、ドキュメントライブラリにアップロードします-代わりにCEWPをそのファイルにポイントします。

変更がない場合は、CodePlexのHTML / JS Render Webパーツを使用してみてください。これにより、CEWPの一般的な問題が回避されます。http://davidmsterling.blogspot.com/2012/12/htmljavascript-rendering-web-part.html

それでも機能しない場合は、次のことを試すことができます-

スクリプトをページレイアウトに埋め込み、CEWPまたはHTML / JSレンダーを使用します(ここでもファイルを使用してスクリプト呼び出しを保持します)または

スクリプトをマスターページに埋め込みます(ただし、これはおそらく必要のないオーバーヘッドです)

上記のいずれかで問題が解決するはずです。

デビッドM.スターリング

http://davidmsterling.blogspot.com

http://www.sterling-consulting.com

http://www.sharepoint-blog.com

于 2013-01-04T14:08:36.423 に答える