2016-06-29 8 views
1

ボタンをクリックすると、PDFをダウンロードするのに少し時間がかかることに気付きました。 eventListenerを作成できるものはありますか?だから私はスピナーを開始して終了することができます。これは本当に多くの時間がかかるiPad上の問題です...しかし、少なくともwaiting for xep.cloudformatter...が表示されるまで30-50秒が良いです。サービスをXportability/css-to-pdfをJavaScriptスピナーにリンクする

他にもできることがありますか?

答えて

2

更新:イベント "xepOnlineStatus"をコアコードに追加しました。 paramをステータスに設定し、フォーマットの開始と終了時にトリガします。これらの州は「開始」と「完了」です。同じスピナーでこれらのイベントを処理する以下のようなシンプルなJSを今実装することができます。サイトのメインJSが更新され、Githubコードがすぐに更新されます。

ここで動作確認できます:http://www.cloudformatter.com/CSS2Pdf、PDF形式のみでスピナーが有効になります。

document.observe('dom:loaded', function() { 

jQuery(document).on("xepOnlineStatus", function(event, state){ 
if (state == "Started"){ 
    var screenTop = jQuery(document).scrollTop(); 
    var screenHeight = jQuery(window).height(); 
    jQuery('#spinner-overlay').css('top', screenTop); 
    jQuery('#spinner-overlay').css('height', screenHeight); 
    jQuery('#spinner-overlay').toggle('show'); 
} 
else if (state == "Finished"){ 
    jQuery('#spinner-overlay').toggle('hide'); 
} 
}); 

}) 

ENDのUPDATE:一瞬、「他の何か」の精神で完全

放置下記のオリジナルの答え、ここに提供するために、現在のJSをハッキングし、いくつかCSSを追加するための方向性とDOM要素ですスピナー:

1)メイン(xepOnline.jpPlugin.js)をハッキング:

私は

)ライン735上や周り(このような形式の機能を変更しました

ここでの変更は、スピナーオーバーレイを配置し、スピナーdivを適切に設定するための2つのvarを取得することです。次に、この関数がフォーマット処理全体を開始するので、 "on"に切り替えます。

次に、__postBackSuccess関数と__postBackFailure関数を変更して、これらの関数がプロセス全体を終了させるため、スピンナ(行787と872の上または周り)を非表示にしました。私はこれらの関数の中で次の行を最初の行として追加しました。次に、 "submit"メソッドをカバーするようにPOST submitallを変更しました。上記は "newwin"と "embed"の後のスピナーを却下しますが、ダウンロードはしません。フォームが投稿された直後のライン698上や周囲に

、追加:

jQuery('#spinner-overlay').toggle('hide'); 

2)CSS

私は自分のページのために、以下のCSSを追加しました:

#spinner-overlay { 
background-color: #aaa; 
opacity: 0.4; 
position: absolute; 
left: 0px; 
top: 0px; 
z-index: 100; 
height: 100%; 
width: 100%; 
overflow: hidden; 
background-image: url('/Resources/Images/ajaxSpinner.gif'); 
background-position: center; 
background-repeat: no-repeat; 
} 

注:あなたは自分のカスタムスピナーをバックグラウンドイメージとして指します。私のものは "gif"です。

3)ページが右、このような後>私は<のdivを追加

を変更します。

<div id="spinner-overlay" style="display:none;"></div> 

だから何が起こる...フォーマットが開始したときには、現在のページのレイアウトを取得し、スピナーを拡大divを使用してその領域をカバーし、不透明で画面上に重なったスピナーを表示します。フォーマットが終了または中断すると、そのスピンナーdivが隠されます(または、ダウンロードすると、フォーマットするサーバーにデータがポストされたときにスピナーが非表示になります)。

いいですね。

enter image description here

関連する問題