2012-02-21 12 views
-1

私は非同期呼び出しに関する非常に大きな誤解を持ち、私の質問に対する合理的な答えを見つけることができませんでした(私は申し訳ありませんが愚かな質問ですが、Web開発における非同期呼び出し

Javascriptなしで関数を非同期に呼び出す方法はありますか?

私が非同期を意味するとは、ページが読み込まれるときに、バックグラウンドで実行する処理が重い関数を呼び出すことと、関数が処理するのを待たずに結果を表示するページ)。

ソケットは実行可能ですか?

言語:PHP、JAVA、ASP.NET、PYTHON

感謝。

+0

あなたは同様のことを達成するためにあなたのページにJavaアプレットやFlashやSilverlightを埋め込むことができますが、JS IMHO 。 – Mchl

+0

たとえば、php/java関数を呼び出して作業をしたい場合は、ページ全体をレンダリングできるようにしたい場合や、関数が(divやspanの)ユーザーに結果を表示する処理を終了したとき作成された出力をユーザーに表示する(PHPのpopenのように) – pufos

+0

JSを使用できないのはなぜですか?最新の非同期Web開発_screams_JS。 – nickb

答えて

1

まあ、クライアントにデータを送信する前に、すべての動的コンテンツが利用可能になるまでサーバが待機する理由はありません。そのため、いくつかのデータ(「待ってください」メッセージなど)を送信してから、重い処理を行い、その応答をすべて1つのHTTPリクエストに返信することができます。ただし、最終的なメッセージが受信されるまで、ブラウザには常にローディングバーが表示されます。

+0

はい、しかし誰も見たいと思っていません。5 - 8秒間の読み込み – pufos

+0

私は多分、Java(サーブレットやJSP)がJavaがマルチスレッド、並列なのでJavascriptのようなDOMを操作できると思っていました非同期呼び出しをネイティブにすることができます。 PHPはシングルスレッドであり、現時点では非同期呼び出しを実装していません – pufos

+0

問題はサーバー側ではなくクライアント側です。ブラウザは、新しいコンテンツが利用可能かどうか(または双方向通信用のオープンソケットさえも)JavaScriptを使用したり、ページ(またはページ上のフレーム)を再ロードせずに、非同期呼び出しを行うことはできません – Simon

1

醜いことなく、結果が利用できるようになるまで数秒ごとに常にページをリロードするなど、20世紀のハッキングはありません。

+0

Javascriptを使用しないと、Webアプリケーションを非同期にすることは不可能でしょうか? – pufos

0

投稿した質問とコメントに基づきます。サーバーがレンダリングするときにデータを表示するには、さまざまな方法があります。それはすべて、アプリケーションの構造に依存します。振り返ってみると、Javascriptは最も洗練されたソリューションを提供します。

1つの方法として、Meta-Refreshタグを使用して、常にページをリフレッシュし、コンテンツが利用可能になると表示する方法があります。

もう1つの方法は、ウェブページ内にiFramesを置くことです。 iFrameのURLは、重い処理を行うページになります。この方法では、iFrameが読み込まれるのを待つことなく、ページのロードが行われます。

+0

私はIFrameについて完全に忘れました。なぜなら、私はもうそれらを使用しないからです(MVCフレームワーク以降)。しかし、私の質問は:Javaは非同期タスクを呼び出す方法を知っていて、バックグラウンドで作業を行い、結果が表示されたらそれを表示します。 JavaScriptが必要なのはなぜですか(ブラウザが関係しているため) – pufos

+0

HTTPはステートレスなプロトコルであることを覚えておく必要があります.GET要求をURLに送信すると、応答が返されます。その後、サーバがあなたに電話をかけて、あなたの問い合わせに関するより多くの情報を持っていると言うことはできません。これらのすべてのハッキングは、関連する応答が利用可能になるまで、クライアントがサーバーへの接続を開いたままにする方法を提供します。 – alykhalid

0

私のAndroid搭載端末を使用している場合、よく私は使用していないプログラムを閉じるようにポップアップを受け取ります。いくつかあります。私はそれらを使用していないときに彼らがどのように動作しているのかわかりません

+0

多くのアプリがバックグラウンドで実行されます。彼らは情報を更新したり、何かをチェックできるように実行します。これは非常に一般的な現象です。 –

関連する問題