2016-08-28 11 views
1

Google jsapiとjqueryを使用したGWT Webアプリケーションがあります。 index.htmlにはGoogle jsapiの読み込みを避ける方法ウェブページの読み込みをブロックする

は、我々はGoogleのJSAPI以下のようにロードされています

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

しかし、これは、クライアントがGoogleにアクセスすることができないとき、それはタイムアウトになるまでの意志は、Webページの読み込みをぶら下げようです。たとえば、中国などの一部の国では、

次のように私はそれがこの正しいかではないかなり確実ではない、上記のスクリプト要素が変更されました:

<script type="text/javascript"> 
$.ajax({ 
    url: 'https://www.google.com/jsapi', 
    dataType: 'script', 
    cache: true 
}); 
</script> 

そして、www.google.comにアクセスすることができないので、自分自身のクライアントをブロックしようとする、しかし、ページをロードするときに、まだロード中のjsapiが保留されています。 18上記のスクリプト要素である:私は、ブラウザのコンソールのネットワークログを確認する必要があり、原因

ajax @ jquery.min.js:127 
(anonymous function) @ (index):18 

以下のように2つのイニシエータ、インデックスがあります。私はこのjquery.min.jsは、このlinkとしてのjQuery 1.4.2で

<script type="text/javascript" src="/js/jquery.min.js"></script> 

次のようにindex.htmlを、ローカルから含まれていた127:しかし、私はjquery.min.jsに関することを理解していませんそれは127行目にロードされているGoogle jsapiがないように見えますか?

答えて

0

をご覧ください。これで、追加する必要はありません。

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

をHTMLに追加する必要はありません。 jsapiのロードは、GWT Javaコードで実行できます。たとえば、検索モジュールがロードされます。

AjaxLoaderOptions options = AjaxLoaderOptions.newInstance(); 
//add options if you want to 
AjaxLoader.loadApi("search", "1", new Runnable() { 
    @Override 
    public void run() { 
     //do what you like 
    } 
}, options); 

この方法では、ロードの遅延が発生しません。

関連する問題