1

現在、コンテンツを紹介するために iframe 経由でいくつかの外部サイトを読み込んでいます。ただし、これらのサイトはユーザーやサーバーから地理的に離れているため、ユーザーにとっては非常に低速です。

私は最近、php メソッド file_get_contents() に出くわし、サーバー側のスクリプトよりも高速になることを読みました。私の質問は、ユーザーの観点からです。file_get_contents は外部サイトをユーザーにとって iframe よりも高速にロードしますか、または使用できる iframe よりも高速な他の PHP メソッドはありますか。

ありがとう

4

3 に答える 3

4

クライアントに何かを送信する前にサーバー上のこれらすべてのサイトを取得すると、サーバーがすべてのページをロードするまで、クライアントには何も表示されません。iframe を使用している場合、クライアントはサイトを非同期にロードしているため、以前に何かが表示されます。サーバーがこれらのページを定期的に取得してキャッシュする場合は、利点があります。

しかし、サーバーにサイトをロードして HTML を埋め込むということは、これらのサイトに含まれるすべての外部インクルード (スタイルシート、Javascript、画像) を書き直して修正するために、サーバー側で多くの処理を行う必要があることも意味します。現在、別のドメインから提供されています。

要するに、おそらくそうではありません。

于 2013-02-26T09:20:06.407 に答える
3

考えてみてください、あなたはプロキシとして行動します:

+---------------+                      +-------------+
| external site |<---far far away------| your server |
+---------------+                      +-------------+
                                              ^
                                              |
                                      +----------------+
                                      | client browser |
                                      +----------------+

これにより、別のレイヤーが追加されますが、外部サイトが誰にも近づきません。結論:どちらかといえば遅くなります。

于 2013-02-26T09:20:43.533 に答える
0

のみを使用する場合の問題file_get_contents()

  • iframe では、ページのスタイリングによって iframe コンテンツのスタイリングが変更されることはありませんが、php の file_get_contents() によってスタイリングが乱れる可能性があります。
  • サイトが大量のトラフィックを取得している場合、サーバーから外部リンクを継続的にクエリすると、サーバー IP が外部サーバーからブラックリストに登録される可能性があります。

最善の解決策は次のとおりです。

  • 外部ファイルを cron ジョブとしてロードして保存します。

  • ページの必要条件 (css および js) と共にファイルをサーバーに保存します。

  • このローカル ファイルを iframe に読み込むと、非同期表示と高速なユーザー エクスペリエンスが実現します。

于 2013-02-26T09:29:11.537 に答える