ツイートを取得してエコーするphpスクリプトがあります。問題は、ページの読み込みに時間がかかることです。
最初にページをそのままロードし、ツイートの準備ができたら、ツイートでページを編集する方法はありますか?
document.readyState プロパティを使用して、ページが読み込まれているかどうかを確認できます。
if(document.readyState === "complete") {
//Already loaded!
}
else {
//Add onload or DOMContentLoaded event listeners here: for example,
window.addEventListener("onload", function () {
/* you may use ajax to get the tweet contents like this. */
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","tweetsPage.php",true);
xmlhttp.send();
}, false);
}
Chirp.js を試してみてください。これは、Javascript でツイートを読み込むための非常に優れたライブラリです: http://lab.rog.ie/chirp/
私は AJAX を使用しますが、代わりに、Twitter コードを使用する iframe を作成し、ファイルをソースとしてマークアップすることもできます。
PHPは実際には必要ないようです。Chirp.js のような JavaScript オプションを使用します。上記のように。
ただし、PHP を使用することに固執している場合 (スクリプトに追加機能が組み込まれている可能性があります)、jQuery/AJAX ルートを使用します。
これにより、スクリプトの読み込み中に一貫したユーザー エクスペリエンスを提供しながら、レイアウトの問題を最小限に抑えることができます。$.AJAX() は非同期であるため、ページが表示されないという現在の問題とは対照的に、ページの機能はブロックされません! 当然のことながら、唯一の欠点は、ツイートの読み込みにまだ時間がかかることです.
おそらく、PHP スクリプトを投稿したり、サーバーのセットアップについて教えてくれたりすれば、本当の問題を解決できるかもしれません - PHP スクリプトの実行に時間がかかるのはなぜですか? これはおそらく問題の最も興味深い部分です。何かを間違って実行している可能性があるため、後で本番環境で問題が発生する可能性があります。