0

SharePoint ページ上に構築されている OpenLayers マップがあります。すべてが正常に機能しますが、マップの読み込みに時間がかかるため、完了するまでページの残りの部分がフリーズします。この地図は当社のホームページ用であり、この問題を修正するまで追加できません。

JQuery .load と .ajax を使用して、すべてのマークアップを含む html ファイルを読み込もうとしましたが、OpenLayers.js を読み込もうとすると、どちらも「アクセスが拒否されました」というエラーがスローされます。これを回避するには、最初に .load または .ajax 呼び出しを行っていたすべての .js ファイルを SharePoint ページに含めます。.done() メソッドを使用して、取得したソース コードをページのプレースホルダー DIV に追加します。.done() メソッドが実行されると、完了するまでページの読み込みがフリーズします。

ajax呼び出しが応答を返したら、オブジェクトをプレースホルダーDIVに追加し、マーカーとレイヤーをOpenLayersマップに構築する必要があるため、フリーズが発生することを理解しています。

OpenLayers マップを使用して Iframe を読み込もうとしましたが、完全に読み込まれるまでページがフリーズします。

ページにロードする前に、openlayers マップとそのすべてのコンポーネントを完全にロードする方法はありますか? おそらく別のウィンドウで?Web サービスを使用していますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

OpenLayers は、マップを作成するために dom 要素 (div) を必要とするため、div 要素を配置せずにマップを作成する方法はありません。

私が考えることができる唯一の最適化は、OpenLayers ライブラリと、ページの他のすべての html の下のページの下部にマップを作成するコードをロードすることです。このようにして、スクリプトはページの残りの部分が読み込まれるまで実行を開始しません。これは、OpenLayers だけでなく、一般的な JavaScript の非常に一般的なベスト プラクティスです。

WebParts を使用してマップをパッケージ化していて、ページの下部にマップを配置できない場合は、おそらく 2 つの WebParts を作成する必要があります。 OpenLayers ライブラリをインポートし、マップをレンダリングする JavaScript を実行します。

于 2012-08-20T08:48:31.193 に答える