4

IE8を使用してRESTサービスから非常に大きなバックボーンコレクションをフェッチしているときに、「このページのスクリプトが原因でInternetExplorerの実行が遅くなっています」という警告メッセージが表示されます。

私は4000アイテムの約25のプロパティを持っています(これはイントラネットアプリであり、クライアント側でページングを行います)。

他のすべてのブラウザー(IE9も)は完全に機能します。

サーバーへのフェッチ後に、受信したREST配列がモデルのコレクションにマップされると、警告が表示されます。

このメッセージは、IE8の操作が約500万回に制限されているために表示され、IE8に到達すると迷惑な警告メッセージが表示されます。

それほど大量のデータではないように見えるので、どうすればこの制限に達することができるのかわかりません。

この制限は、クライアントでWindowsレジストリを操作するか、 Microsoftが提供するパッチを使用して増やすことができることを学びました。

より洗練された解決策は、IE8の操作カウンターをリセットする長時間実行操作にsetTimeoutを挿入する、ここで説明する回避策を使用することです。

データのフェッチが成功した後、バックボーンは、underscore.jsマップ関数を内部的に使用するparseメソッドを呼び出します。

underscore.jsまたはbackbone.jsのソースコードに触れずに回避策コードを適用したいと思います。これは可能ですか?

4

1 に答える 1

1

リクエストを分割して、サーバーフロントエンドにすべてのページネーションロジックを実行させることは可能ですか?IE8は本当に地獄ですが、イントラネットであろうとなかろうと、あなたのアプローチはベストプラクティスではありません。4000オブジェクトx25プロパティ(バックボーンを使用しているので、jsonだと思います)は、実際にはかなり重いクライアント側の解析です。

BackboneのBackbone.Paginatorコンポーネントを確認してください。これは、間違いなく役立つでしょう。

http://addyosmani.com/blog/backbone-paginator-new-pagination-components-for-backbone-js/

于 2012-08-14T06:03:23.620 に答える