1

AJAX を使用して ASP.NET Web サービスと対話する Web アプリケーションがあります。オフラインで使用できる別のバージョンを作成したいと考えています。既存のコードを可能な限り再利用できるようにする必要があります。どのようなアプローチを検討する必要がありますか?


アプリは現在、サーバーから動的データを取得するために XmlHttpRequest を使用しています。明らかに、オフライン バージョンはサーバーと通信できませんが、何かと通信する必要があります。IIS または Cassini をクライアントにインストールすればうまくいくと確信していますが、もっと簡単な解決策を期待していました。JavaScript が外部コードと対話する他の方法はありませんか?

4

9 に答える 9

3

今日、たくさんのオフラインWebアプリがあります。それは単にAJAXから進化したものです。

例えば:

WoaS(スティック上のウィキ/ stickwiki)、Tiddly Wiki、

GoogleドキュメントとGmailはオフラインになります。

これらのWebアプリケーションをオフラインモードで実行するためにWebサーバーは必要ありません。必要なデータ、スクリプトをクライアント側に(通常はXMLとして)保存するだけです。

于 2009-02-24T06:54:24.833 に答える
1

可能性の 1 つは Cassini を使用することです。これは、ASP.Net ランタイムのホストとして機能する Web サーバーです。Windows アプリケーションまたは Windows サービスで Cassini をホストできます。このシナリオでは、Web アプリと Web サービスを書き直す必要はありません。

他のほとんどのソリューションでは、Web アプリと Web サービスの両方を書き直す必要があります。既存のアプリを作成した方法に応じて、再利用できるコードの量を増減できます。

于 2009-02-03T14:59:17.097 に答える
1

アプリケーション キャッシュとオフライン ストレージを備えた HTML5 を検討したことがありますか?

于 2011-01-25T08:49:27.410 に答える
0

AJAXに依存している場合はXMLHttpRequest、次のことができます。

  1. XML取得したの静的バージョンを作成XMLHttpRequestし、ディスク上のフォルダに配置します。
  2. XMLHttpRequest URLディスク上のファイルを指すように'を書き直します。
  3. XMLHttpRequestステータスをチェックしないように'を書き直します(常にプロトコル0用です)。file://

すべてのページとページで機能しJScriptます。file://http://

もちろん、静的ページを開発するための最良の方法ではありませんが、書き直しの時間を節約できる可能性があります。

于 2009-02-03T15:08:56.610 に答える
0

パッケージの「オフライン」バージョンを作成したい場合、最大の問題は、IIS のローカル コピーにサイトをインストールする必要があることです (仮想ディレクトリの登録など)。私は数年前にこれを簡単に追求し、欲求不満であきらめました. それは可能です。DevExpress などの多くのソフトウェア ベンダーがこれを行っているため、デモ プロジェクトのローカル コピーを入手できます。確かに、はこれを行うことができました。問題は、古典的な「自分のコンピューターで動作する」症候群でした。私のエンドユーザーのほとんどが、これを機能させるための技術的習熟度に近いことを保証する方法はまったくありませんでした.

したがって、技術的に非常に熟練したユーザーと多数のサポート スタッフがいる場合を除き、この道をたどらないことを強くお勧めします。

しかし、もう 1 つ非常に重要な質問があります。すべてのデータ アクセス コードを DAL に抽象化しましたか? そうでない場合は、データ アクセスの管理にも多くの作業を行う必要があります。

更新: ユーザー「Rine」が Cassini を推薦しました。Cassini と別のサードパーティの Web サーバーも調査したことをお知らせしたいと思います。Cassini にはライセンスの問題があると思いますが、間違っている可能性があります。ただし、このアプローチと、私を助けるためのドキュメントがほとんどないため次から次へと障壁にぶつかったことをはっきりと覚えています。

于 2009-02-03T15:00:06.067 に答える
0

Web アプリケーションをオフラインで実行する場合は、localhost (127.0.0.1) アドレスにバインドされた Web サーバー (ASP 用 IIS) が必要です。この後、オンラインと同じ方法で Web ブラウザーにhttp://127.0.0.1/と入力して、Web アプリケーションにアクセスできます。

于 2009-02-03T15:01:41.290 に答える
0

PHP や RoR で利用可能なフレームワークのように、asp.net 用に特別に構築されたフレームワークに出くわしたことはありません。これは、HTML 5 と ASP.Netの作成を開始するための Steven による優れた記事です。 HTML 5 オフライン アプリケーションの作成

于 2011-05-23T11:15:50.837 に答える
0

明らかに、オフライン バージョンはサーバーと通信できませんが、何かと通信する必要があります。

HTML5 LocalStorage を入力します。これはデータベースのように機能し、クライアントにデータを置くことができます。実際、JavaScript でコードの一部を作り直してクライアントに送信する必要がありますが、オフラインで動作することになります。

ローカル ストレージは次のように機能します: - セッター: window.localStorage.setItem(KEY, VALUE) - ゲッター: window.localStorage.getItem(KEY) - 削除: window.localStorage.removeItem(KEY)

メイン ページをオフラインで機能させるには、マニフェストを作成する必要があります。これは、完全なサイトをクライアントに保存するために使用されます。マニフェストの詳細については、http: //diveintohtml5.info/offline.htmlを参照してください。

于 2012-11-16T13:16:41.623 に答える
-1

オフラインで動作する Web アプリケーションを構築したいですか?? それはできません。

インターフェイス コードを (異なる dll で) 残りから分割し、Windows アプリケーションを作成して、Web アプリケーションの動作を模倣することができます。このように、2 つの異なるユーザー インターフェイスがありますが、ビジネス ルールとデータ アクセスのコードは同じです。

他の方法は本当にわかりません...

于 2009-02-03T14:57:48.597 に答える