0

ページの一番下までスクロールすると、より多くのコンテンツをロードするプラグインをいくつか見てきましたが、これらのほとんどは、自動インクリメントされた ID を持つデータベースの列にリンクされています。これを行う必要があるのは、XML ファイルのみです。

何か案は?

とても有難い。

4

1 に答える 1

0

xml ファイルはサーバー上にありますが、jQuery で解析できると思いますか? ajax を使用して XML ファイル全体を解析することはできますが、それは無限スクロール/遅延ロードを無効にしますか?

XML をクライアントに送信すると、ブラウザXML を解析して DOM を構築します。その大きさ (数キロバイト? メガバイト?) に応じて、これは高速になることもあれば、しばらく時間がかかることもあります。デフォルトですべての if をブラウザーに送信すると、帯域幅も浪費され、はい、どういうわけか遅延読み込みの目的が無効になります。

ただし、無限スクロールは UI パラダイムであるため、常に XML ファイル全体をブラウザーに送信しても実装できます。ここでも、帯域幅を節約するか、「その場で」コンテンツを作成するかによって、何を達成したいかによって異なります。

ファイルが非常に大きいため、ファイルをサーバーに残しておくとします。

  • サーバーにそれをスレッドセーフ (!) DOM オブジェクトにロードさせます。アプリケーションの存続期間中はオブジェクトを破棄せず、アプリケーション (またはセッション) に保存することで、すべてのリクエストで再利用します。実際、これにより「データベース」が作成されます。
  • XML にアクセスし、その一部をブラウザに返すプロキシ ページを作成します。XPath を使用して、要求されたビットを XML DOM オブジェクトから取得できます。
  • お気に入りの無限スクロール jQuery プラグインを使用し、プロキシ ページを適応させてリクエスト パラメータを受け入れます。

無限スクロール プラグインからの架空のリクエストは次のようになります。

http://server.name/path/data.aspx?start=516&count=10

次に、data.aspx は XPath クエリを使用して、次の 516 番目の要素から 10 個の XML 要素を取得します。

/root/data[position() >= 516 and position() < 516 + 10]

次に、それから HTML を構築するか、生の XML として送信し、クライアントで jQuery を介して評価します。

おそらく、これらすべてを行うカスタム フレームワークが存在しますが、そのようなシステムを実装するとしたら、おおまかに上記のようになります。

于 2011-02-22T16:06:47.927 に答える