3

CSVファイルを解析するgrailsアプリケーションがあります。私はそれをフォームで動作させています、そして人々がフォームをアップロードするとき、次のページを取得するのに30秒以上かかることがあります。

フォームの仕組みを変更せずに、何らかのポップアップや砂時計などをjavascript(jQueryなど)ですばやく配置する方法はありますか?フォームの送信全体をJQueryなどに移行せずにすばやく修正できるものを探しています。

私の最初の試みでは、答えはノーのようです。通常のフォーム送信をクリックすると、ブラウザはJavaScriptを無効にするページをチャックしているように見えます。ただし、応答が同じページの場合、JavaScriptが実行されますが、それは役に立ちません。

このようなもの:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">jQuery(function(){
  alert("jquery aint buggeed");  //this happens
  $("#submitHandle4JQ").click(function(){alert("BE PATIENT!!");})  //this does not
}); </script>

...

<form action="/path/mySweetGrailsController/parseStuff" method="post" enctype="multipart/form-data" >
<input type="hidden" name="longNumber" value="935762708000464097" id="longNumber" /> 
<input type="file" name="bigFile" />
<input type="submit" text="Upload My File" name="submitHandle4JQ"/><br/>
</form>
4

3 に答える 3

8

これを試して。フォームが処理されているときに、「待機中」というクラスを本文に追加してから、次のようにします。

<style type="text/css">
.waiting { cursor: wait; }
</style>

カーソルプロパティのブラウザサポートは完全ではありませんが、その欠点のほとんどは、使用しているOSに基づいてデフォルトのアイコンにマップされるデフォルトのキーワード(「待機」など)ではなく、カーソルにカスタムイメージを使用することに関係しています。使用(XP以下の砂時計、Windows 7のスピニングサークル、古いMac OSのスピニングビーチボールなど)。見る:

http://reference.sitepoint.com/css/cursor

これがニーズに合う十分なブラウザで機能するかどうかを確認するために実験する必要があります。

編集:ああ、そしてあなたが待っているカーソルを消すために終わったら、.waitingクラスを再び体から外してください。

于 2011-05-23T21:54:21.870 に答える
2

すでにjQueryを使用している場合は、BlockUIプラグインが役立つと思います。これを使用して、要素またはページ全体をブロックし、メッセージを上にオーバーレイすることができます。メッセージはHTMLマークアップであるため、通常はHTMLに含めることができるものなら何でも含めることができます。テキストメッセージ、砂時計のグラフィック、またはその他の考えられるもの。BlockUIのアクティベーションをform.submitイベントにアタッチするだけです。

http://jquery.malsup.com/block/

于 2011-05-23T21:47:46.460 に答える
0

私はこれが古いことを知っていますが、スタックオーバーフローに関する最近の答えを見つけることができません-コードランチに頼らなければなりませんでした

プロセス開始時のjavascript

document.body.style.cursor = 'wait';

プロセス終了時のjavascript

document.body.style.cursor = 'default';
于 2020-07-18T15:50:20.053 に答える