4

私の現在のプロジェクトは、既存のデスクトップ アプリケーションと同等の Web アプリケーションを作成することです。

デスクトップ アプリでは、ワークフローの特定の時点でユーザーがボタンをクリックすると、入力するフォームが表示される場合があります。アプリがフォームを表示するのに少し時間がかかっても、エキスパート ユーザーはフォームがどうなるかを知っています。アプリが「追いつく」ことを知って、入力を開始します。

Web アプリケーションでは、これは起こりません。ユーザーがリンクをクリックすると、次のページのフォームが表示されるまで、キーストロークは失われます。これを防ぐためのトリックはありますか?別のページの使用から離れて、AJAX を使用してGWTなどを使用してページにフォームを埋め込む必要がありますか、それともキーストロークが失われるという問題がまだありますか?

4

4 に答える 4

6

キーストロークは、ページが読み込まれ、javascript が処理され、テキスト フィールドがフォーカスされるまで効果がありません。

基本的に、あなたが本当に求めているのは; Web アプリケーションを高速化して応答時間を増やすにはどうすればよいですか? あなたのアンサーはAJAXです!

アプリケーションで最も一般的なアクションについて慎重に検討し、AJAX を使用して Web ページのリロードを最小限に抑えます。AJAX を過度に使用しないでください。JavaScript を使いすぎると、ユーザビリティが改善されるのと同じくらい、ユーザビリティが妨げられる可能性があります。

関連読み物:

于 2008-09-14T22:43:40.790 に答える
1

おそらく私は問題を考えていませんが、これを捨てます...クリックイベントで表示する非表示のdivまたは同様のコンテナ内にフォームを置くことができます(おそらくモーダルな外観/動作を与えますか?)リンクの。そうすれば、フォームはすでにページの一部として読み込まれています。ほぼ瞬時に表示されるはずです。

モーダル div のチュートリアルはいたるところにありますが、それほど難しいものではありません。ASP.NET を使用している場合は、Microsoft の AJAX ライブラリに含まれているものもあります。

于 2008-09-16T13:46:27.180 に答える
0

AJAX またはプラグインが唯一のチャンスです。

于 2008-09-14T22:36:50.073 に答える
0

やりたいことをやるのはなかなか難しいと思います。本当の問題は、新しいページの読み込みに時間がかかりすぎることだと思います。ページをキャッシュするか、画像などの静的コンポーネントで部分キャッシュを実行して、読み込み時間を改善するか、ページをプリロードして非表示にすることを検討する必要があります。(いくつかのアイデアについては、フォームをより使いやすくするための簡単なトリックを参照してください)

コーディング オプションについては、javascript を使用してキーストロークをキャプチャできます (さまざまなキーストロークの検出を参照してください) 。

<html><head>
<script language=javascript>
IE=document.all;
NN=document.layers;
kys="";
if (NN){document.captureEvents(Event.KEYPRESS)}
document.onkeypress=katch
function katch(e){
if (NN){kys+=e.which}
if (IE){kys+=event.keyCode}
document.forms[0].elements[0].value=kys
}
</script>
</head>
<body>
<form><input></form>
</body>
</html>

それらを保存してから、現在のページから制御が渡された後に新しいページに転送する必要があります。(ブラウザを閉じるとき、またはページを終了するときに変更を保存するを参照してください)

さまざまなブラウザーでのキーストロークの検出に関する問題に関する一般的な情報については、Javascript - Detecting keystrokesを参照してください。

于 2008-09-14T22:54:13.027 に答える