9

私は asp.net (3.5) Web アプリを作成中ですが、オフライン機能を利用できるようにする方法を知っているかどうか疑問に思っていました。

これは、ユーザーが自分のデバイスに Web アプリを「インストール」し (たとえば、iPhone の「ホーム画面に追加」機能を使用して)、オフラインのときにアプリを使用できるようにするために必要です。使用が制限されるだけです (この時点でサーバーを呼び出す必要もありません)。

これは .aspx ページで実行できますか?

Edit-.manifest が追加されました:

CACHE MANIFEST
index.aspx

/logo.png
/main.css
/main.js

編集番号2-

ある方法で、オフラインで作業しています。サファリでは機能しますが、サファリでは必要なく、スタンドアロンアプリとして必要です。このように実行しようとすると、「サーバーに接続できません」というエラーが発生します。これは .aspx ページで可能ですか?

編集番号3 -

これは .html ページを使用して動作するようになりましたが、.aspx ではまだ動作しません。

編集番号4-

理由は不明ですが、現在は機能しています。先週、cache.manifest の 'network' セクションに index.aspx を追加しました (先週は機能しませんでした!)。これは役に立ったかもしれませんが、実際に何が起こったのかがわかり次第、更新します!

助けてくれてありがとう!

4

4 に答える 4

14

ASP.NET を使用したオフライン HTML5 アプリケーションについては、このリンクとこのリンクを参照してください。

オフライン機能については、いくつかの代替手段があります。

01 - オフライン アプリケーションに少量のデータを保存する必要があり、セキュリティが大きな問題ではない場合は、HTML5 Web ストレージ ( linklinklinklinklink、およびCanIUseを参照してブラウザーを理解する) を使用できます。バージョンのサポート)。

主な欠点は、セキュリティが不足していること、キー値ベースであること (複雑な構造がない)、ストレージ サイズに大きな制限があること (ほとんどのブラウザーで 5MB) です。


02 - 大量のデータが必要な場合は、IndexDB ( linklinklinkおよびCanIUse ) または Web Sql ( linklinklinkおよびCanIUseブラウザー サポート) を参照できます。

Web SQL の主な欠点は、IE の Firefox でサポートされていないことです。また、W3C によって廃止されました。

IndexDB は優れています (リンク) が、iOS ではまだサポートされていないようです (canIUse を参照)。

アプローチ 1 と 2 では、ASP.NET アプリケーションでレスポンシブ デザインまたは専用のモバイル Web サイトを作成できます (リンク)。


03 - (柔軟性を高めるには、より多くの労力が必要です) ASP.NET アプリケーションに Web サービスを実装し、時々接続されるアプリケーションの概念を適用するモバイル ネイティブ アプリを実装します (詳細:リンクリンク)

  • ASP.NET Web アプリケーション=> Web アプリケーションの場合、オフライン機能に関連するサービスを含む Web サービスを公開します。

  • モバイル アプリケーション=> アプリケーション用のデータベースを使用して、ネイティブ モバイル アプリを実装します (たとえば、Android および iPhone 用のアプリを開発します)。次に、モバイル アプリでオフライン機能を作成します。この機能は、独自のデータベースを使用して、オフラインで使用できる必要があるデータを (ローカルで) 読み書きします。

次に、Web サービス経由で ASP.NET アプリケーションにアクセスして更新を検索する、インターネットに依存するモバイル アプリ (反復スレッドなど) にサイレント同期メカニズムを実装します。この同期メカニズムは、ローカルに保存されたデータを送信し、オフライン機能に役立つデータを Web サービスから復元します。


それが役に立てば幸い。

于 2013-08-07T12:21:28.657 に答える
1

はい。これは、キャッシュマニフェストを使用して、他の人が言ったように行うことができます。

私がお勧めするのは、動的なキャッシュ マニフェストを生成するハンドラーを作成することです。

キャッシュ マニフェスト ファイルに関して厄介なことの 1 つは、そのファイルが変更されない限り、更新が行われないことです。ここでハンドラーの出番です。コメント文字として # を使用してコメント セクションを追加し、その後タイムスタンプを更新します。

#2013-08-08 1:53:36 PM 'This is your comment section

これがハンドラーによって生成された場合、各ユーザーのページが更新された可能性があるときにDBに保存できます(これにより、キャッシュしながら動的になります)

キャッシュ マニフェストを使用する際には、次の点に注意してください。

キャッシュされるファイルは、アクセスされるファイルの正確なクエリ文字列と一致する必要があります。これは一部のデバイスでは大文字と小文字が区別されるようであり、一方に存在するクエリ文字列はもう一方にもまったく同じである必要があるため、キャッシュ マニフェスト ファイルを生成する際にはこの先見の明が必要です

于 2013-08-07T13:28:53.417 に答える