ボタンが要求されたときにスピナーを実装するために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');
});
例でタイムアウトした後に読み込まれたフォントが表示されません。タイムアウト後にボタンに異なるフォントを使用したいのですか?明確にしてください。 – threeFatCat
@threeFatCat、私が望むのは、ページが読み込まれると直ちにフォントが読み込まれるということです。したがって、ボタンを押す前に、フォントがロードされます。私はここでC + +のサーバーを複製することはできません。アップデートをご覧ください。 – ar2015