0

バックグラウンド:

モバイル リッチメディア広告に統合できる読み込み画面プラグインを開発しようとしています。これらの広告の中には、フリップブック スタイルのアニメーションに複数の画像を使用するものがあるため、このようなものは非常に便利です。iPhone 4.0 以降と Android 2.2 以降、そして理想的には Windows Phone 7.1 で動作する必要があります。

過去にロード画面をコーディングした方法では、一連の画像オブジェクトを作成し、そのソースを画像の URL に設定していました。次に、そのオブジェクトの onload、onerror、または onabort イベントごとに、読み込みプロセスを 1 ずつ増やし、読み込み画面のオーバーレイに表示します。

しかし、チーム メンバーの提案により、PHP を使用して、データ URI を使用して画像データを Web ページに直接エンコードする方法について調査を行ってきました。このアプローチの唯一の欠点は、大量の画像がある場合に Web ページの表示が遅くなる可能性があることです。

数日前、Mark Kolich によるブログ投稿を見つけました。この投稿では、データ uri を使用してサーバー サイド スクリプトで一連の画像をエンコードし、それを json 応答でラップしてから、それらすべての画像ファイルを自分の Web アプリケーションに送り返しています。ただし、読み込み画面でその概念を使用した場合、読み込みの進行状況は 1 つの ajax リクエストで 0% から 100% になります。その結果、読み込みプロセスに数秒かかる場合、訪問者の関心を維持するのに十分な反応刺激ではない可能性があります。途中で進歩を見せる必要があります。

すること:

したがって、私がしなければならないことは、Mark の方法を利用して、応答をもう少しリアルタイムにする方法を見つけ出すことです。画像のリストを含む 1 つの AJAX リクエストをローダー php スクリプトに送信し、毎回 (または 1 回おき、または 5 回ごとなど) 更新を含む複数の応答で php スクリプトに ping を返すことができるようにしたいと考えています。これらの画像の読み取りとエンコードを完了しました。

私はそれを複雑にしすぎているかもしれないことに気づきました。PHPスクリプトがこれらの画像を非常に高速に処理するため、クライアント側のコードに戻るおしゃべりはすぐに完了するため、無意味になります。その場合、JSON 応答が返されるまで、setTimeouts を使用して、これらの画像に関連する読み込みプロセスを sudo でシミュレートする方が理にかなっています。または、正しい軌道に乗っている可能性がありますが、ロード時間が長すぎるため、このアプローチを考慮に入れ始める必要がある特定のしきい値があります。

何か案は?例はありますか?

4

2 に答える 2

0

@Marc B が言うように、Comet、または WebSockets ソリューション (古い Web ブラウザーのフォールバック付き) は、間違いなくあなたが探しているソリューションです。

Comet を理解するのは少し難しいかもしれませんが、最終的には HTTP ストリーミングと HTTP ロングポーリング ソリューションが HTTP の回避策になります。WebSocket は標準化されているため、はるかに優れたアプローチであり、私の意見では、サーバーとクライアントの双方向リアルタイム通信の標準になりつつあります。PHP のリアルタイム インフラストラクチャには、いくつかのソリューションがあります。

リアルタイム インフラストラクチャをインストールして維持する手間を省くホステッド サービスを使用したい場合、特にイベントが発生したときにサーバーからクライアント (iOS、Android、WP7 のブラウザー) に更新をプッシュするだけの場合 (新しい画像が表示されるか、データベースが更新されるなど)、ホストされたソリューションは間違いなく良いオプションです(注:私はホストされたソリューションプロバイダーで働いています)。

ここにホストされているソリューションのリストをまとめました。

参照:ホステッド リアルタイム テクノロジー

于 2011-08-26T11:26:23.950 に答える
0

コメットを試してみてください。マルチパート応答が可能で、定期的な更新を取得できますが、HTTP 要求は 1 つだけです。

于 2011-08-24T19:20:08.160 に答える