2017-07-08 9 views
0

ボタンが要求されたときにスピナーを実装するためにexampleをたどりました。このコードはfontを読み込みます。ページ上にフォントをロードする

私の問題は、ボタンがajaxを呼び出し、フォントがajax呼び出しの後にロードされることです(ボタンアイコンの変更が最初にjavascriptによって要求されているにもかかわらず)。 ajaxとfontの両方がローカルサーバーから呼び出されます。このサーバーはマルチタスクではなく、ajaxが呼び出されたときにajax呼び出しが終了するまでフォントがロードされません。

ページが読み込まれたときにブラウザが最初にフォントを読み込むようにする方法はありますか?

$('.btn').on('click', function() { 
 
    var $this = $(this); 
 
    $this.button('loading'); 
 
    setTimeout(function() { 
 
     $this.button('reset'); 
 
    }, 800000); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"/> 
 
<div style="margin:3em;"> 
 
<button type="button" class="btn btn-primary btn-lg " id="load" data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Processing Order">Submit Order</button> 
 
<br> 
 
    <br> 
 
<button type="button" class="btn btn-primary btn-lg" id="load" data-loading-text="<i class='fa fa-spinner fa-spin '></i> Processing Order">Submit Order</button> 
 
</div>

UPDATE

私のコードは、このような構造を有する:

$(button).button('loading'); 

$.post("/my_page", 
    JSON.stringify({ 
      param: "1234", 
        }), 
    function(data) 
    { 
     // .... 
     $(button).button('reset'); 
    } 
    ) 
    .fail(function(xhr, status, error) 
    { 
     // error handling 
     $(button).button('reset'); 
    }); 
+0

例でタイムアウトした後に読み込まれたフォントが表示されません。タイムアウト後にボタンに異なるフォントを使用したいのですか?明確にしてください。 – threeFatCat

+0

@threeFatCat、私が望むのは、ページが読み込まれると直ちにフォントが読み込まれるということです。したがって、ボタンを押す前に、フォントがロードされます。私はここでC + +のサーバーを複製することはできません。アップデートをご覧ください。 – ar2015

答えて

0

その後、これはページが読み込まれると... を行いますと、スクリプトの準備ができています。あなたのフォントを読み込むためにajax呼び出しを行います..

$(document).ready(function(){ 
    //your ajax.. call here to load the font. 
}); 
+0

ajaxはフォントを読み込みません。 ajaxは、応答に数秒かかるページを呼び出します。フォントはブートストラップスクリプトによって私のコントロールから読み込まれます。 – ar2015

+0

[this](https://stackoverflow.com/questions/4383226/using-jquery-to-know-when-font-face-fonts-are-loaded)を試すことができます。 – threeFatCat

関連する問題