0

主に画像に基づいたポートフォリオ Web サイトの Facebook フォト アルバムと画像の詳細を取得する関数を作成しました。現在、facebook クラスでは、ヘッダーがページに出力される前にこれを行う必要があります。

関数 ( fb_get_albums) は、facebook からデータをフェッチし、セッション配列として格納されます。すべて正常に動作しますが、ロードに数秒かかり、その間、画面は基本的に空白です。

とにかく、最初にコンテンツを表示してからデータの取得に進むことができるようにする方法はありますか? これを試してみると、エラーが発生します'headers already sent...'

<?php
session_start();   
require_once 'classes/fb-sdk/src;  
fb_get_albums( "fb-username" );  
?>  
<!DOCTYPE html>  
<html>....</html>  
?>
4

1 に答える 1

0

最初にページコンテンツを表示し、Javascript SDKを使用して、画像を取得して表示することができます。通常、フェッチプロセスに時間がかかる場合は、回転するローダーイメージを表示して、完了するまでに時間がかかる可能性があることをユーザーに通知します。このオンラインツールを使用して、さまざまなタイプのローダーを作成できます:ajaxload.info

Javascript SDKを使用したくない場合は、画像のフェッチを行う別のページを作成してみてください。したがって、ページが読み込まれた後、ユーザーがボタンなどを押すと、AJAXリクエストを発行して、2番目のページから画像をフェッチします。

つまりpage1.php、ボタン付きのページの基本的なコンテンツが含まれています。使用時にそのボタンを押すと、AJAXを使用してpage2.phpアクセスされ、画像の場所やその他の詳細が発信者に出力されます。

ところで、画像のフェッチで発生する遅延を見つけるためにコードをデバッグしようとしましたか?

また、現在のコードには、小さなタイプミスがあります。

require_once 'classes/fb-sdk/src/facebook.php';

つまり、パスが完全ではなく、末尾の一重引用符が欠落していました。

幸運を願っています。

于 2012-09-27T13:16:02.940 に答える