先日から急にサイトのページが重くなっていました。
なにか変更したわけでもないのだがおかしな状況でした。
結論から書くと「利用していたアフィリエイトのサービスが終了していた影響」でした。
実際には外部ファイルで呼び出されるJavascriptが反応しないためにブラウザがタイムアウトを待っているような状況になっていた為です。
これは構造上、外部のサイトからの読み出しが遅かったり利用できない状況は、常に起こりうることで何も今回の様なサービス停止だけではなくて備えておく必要がありますね。
さて、このようなことに備えてどの様なことでが出来るでしょうか。
ひとつは、Javascriptの読み込みを非同期にする方法、もうひとつはJavascript自体をページの後半(フッター)で読み込む方法がセオリーのようです。
Javascriptの読み込みを非同期にする方法
<script>タグにはdefer属性というものがあり、
<script src="****.js" defer="defer"></script>
のようにdefer属性を設定すると非同期で読み込む事ができます。
但し実際には利用してるスクリプトなどでdocument.wirteのレンダリングする部分があると動きません。
結論から言えば今回の問題の場合、スクリプトを外せばいいのだが対応したブラウザであれば上記のDeferで問題なく動くので外部ファイルを利用する際には動作確認をして問題ない場合には追記しておきたいです。
Javascriptの読み込みを最後にする方法
また、別の対策としては、Javascirptをページの最後にすることです。
実際には手動でプラグインの中のJavaascitを書きなおすのはとっても難しいと思うので「Header Cleaner」というプラグインでJavaScriptの位置を簡単に変更する事ができます。
こちらを使用することでページの読み込みが重くなることを防ぐことが出来ます。 こちらのプラグインはその影響でうまく画面が表示されないものなどもあるので要注意です。
最後に
何れの方法も何かしら問題があるかもしれないですが、うまく利用していきたいものですね。
では、また。