2017-01-06 12 views
3

私はワードプレスで記事を書いており、Googleのiframeを使って35カ国の国地図を読み込んでいます。言い換えれば、私は100の他の640px中サイズの画像と一緒にGoogleマップの35 iframeを読み込んでいます。私が書いた記事のサイズは約31MBです。グーグルマップiframeローディングは非常に遅い

モバイルブラウザでは、記事が読み込まれるまでに約15秒かかります。さらに悪化します。時にはGoogleマップによって、記事コンテンツの読み込みが長時間停止することがあります。

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d5662268.557666768!2d-2.2908874246415487!3d46.135220605972364!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0xd54a02933785731%3A0x6bfd3f96c747d9f7!2sFrance!5e0!3m2!1sen!2shu!4v1483719195954" width="400" height="300" frameborder="0" style="border:0" allowfullscreen></iframe> 

ローディングを高速化するにはどうすればよいですか?これを行う簡単な方法はありますか?

私は遅延ロードのようなwordpressプラグインを使用していますが、読み込みがさらに悪くなってしまいます。私はワードプレスのためのスーパーキャッシュを使用してsupe。

+0

Google Maps APIの代わりに静的画像を使用できますか? – mrogers

+0

静的マップの生成方法は? – pbu

+0

私はマップのスクリーンショットを撮り、実際のマップの代わりにイメージを使用することを意味しました。マップが操作されることを意図していない場合。 – mrogers

答えて

5

あなたのコードはうまくいくはずです。私はこれをテストし、各フレームが読み込まれる前にタイムアウトを追加して、変更を見ることができます。

var URLs = [ 
    'http://localhost/a.htm', 
    'http://localhost/b.htm', 
    'http://localhost/c.htm', 
    'http://localhost/d.htm' 
]; 

function loadNext(){ 

    var frameWindow = document.getElementById('test').contentWindow; 

    if(URLs.length > 0){ 
     setTimeout(function(){ 
      frameWindow.location.replace(URLs.shift()); 
     }, 1000); 
    } 
} 

<iframe id="test" onload="loadNext();"></iframe> 
1

の代わりに<img>タグを使用してください。

例:

<img src="https://maps.googleapis.com/maps/api/staticmap?center=London&zoom=13&scale=false&size=600x300&maptype=roadmap&format=png&visual_refresh=true"></img> 

出力:

Learn more

+0

上記のコードは私のサイトでは機能しません、なぜですか?画像が読み込まれません。私はAPIキーが必要ですか? – pbu

+0

もしあなたがそれを持っていれば、それは必要ではありません。動作しない場合は、[http://staticmapmaker.com/google/](http://staticmapmaker.com/google/) – Norbetto89

+0

私もハンガリー人です:) – Norbetto89

1

私は100枚の画像と35件のiframeをロードするための唯一の解決策は、遅延ロードを使用することだと思います。

遅延読み込みは、iframeと画像もサポートしています。無料の遅延ロードプラグインの1つを試すことができます: https://wordpress.org/plugins/bj-lazy-load/

私は助けてくれることを願っています。

+0

私はそれを試してもまだ遅いです。私はその周りに道を見つけた。私はiframeで 'defer'を使いました。私は速度に満足しています。 – pbu

+0

'