0

現在、Ruby on Railsアプリケーションからajax呼び出し(JSONを返す)を介して情報を取得するいくつかのモバイルアプリ(現在はiOSで、後でAndroidで)を構築しています。これは明らかに、JSONデータを返すために別のソースを使用している他のアプリケーションにも当てはまります。

主な質問は、データを保存するタイミングと、ajax呼び出しを使用してデータを取得するタイミングです。現在、私のアプリは1つのものをローカルに保存せず、代わりにすべてのデータに対してajax呼び出しを必要とします。この例では、Twitterモバイルアプリを使用できると思います。これは、多くの人が精通しており、多くの機能を備えているため、(技術的よりも論理的に)どのように実行するのか疑問に思っています。

質問:

1)ログインすると、最初に表示されるのは、ストリーム内のすべてのアイテムのリストです。そのリストはオフラインで利用できます。つまり、最初にサインインしたとき、Twitterはすでに最後のX(100?)ストリームアイテムをすべてローカルデータベースにプルし、将来のビューはそこからプルするだけですか?

2)次に、携帯電話を機内モードにして(またはモバイルデータをシャットオフして)、それらのツイートの1つをクリックすると、そのすべてのデータを含むツイートページが開きます。そのため、現在、ツイートページにアクセスするたびにその情報を個別に取得していないようです(これは私のアプリが現在行っていることであり、そのデータを読み込んでビューを作成するのに時間がかかります)。ストリームアイテムを作成するときに取得したのと同じ情報を使用している可能性があることは理にかなっていますか?

3)ユーザー。(たとえば、ユーザーの「プロファイル」ページを表示する場合)ユーザーデータをローカルに保存してから、今後のアクセス時に更新することをお勧めしますか、それとも毎回ajaxを介してすべてのデータを取得することをお勧めしますか?理論的には、それぞれにajax呼び出しが必要です...

今のところ、これらが私の主な質問だと思います。誰かがそれらのことのいずれか(またはモバイルストレージに関する他の洞察)について何か考えを持っているなら、それは素晴らしいことです!私が参照したもののスクリーンショットが必要な場合は、お知らせください。喜んでスクリーンショットをお届けします。

現在使用しているもの:


バックエンドおよびリモートストレージ用のiOSRubyonRails用TitaniumAppcelerator

4

1 に答える 1

0

まず、ローカルストレージとデバイスキャッシュには違いがあります。

携帯電話は大量のデータをキャッシュするため、データプランを使い切るたびにデータを要求する必要はありません。サファリでページを開いてホーム画面に戻り、サファリに戻ったときも同じ考えです。これはローカルに保存されておらず、IOSによってキャッシュされただけです。

ローカルストレージを使用する必要があるのは、データが変更されない場合です。たとえば、Twitterを使用すると、最初に起動時に現在のアクティビティがダウンロードされます。リンクが含まれている場合は、新しいリクエストが生成されます。セルラーデータをオフにしてもリンクをクリックできるのは、Twitterがデータをローカルに保存しているためではなく、IOSが複数回のダウンロードを避けるために一時的にキャッシュしているためです。ツイッターはあなたの活動の一部をローカルに保存するのが非常に良いかもしれませんが、少なくとも私が見たところ、最新のものから始めてそれらの最大制限を保存し、残りを頻繁にダウンロードします。

一般的に言えば、データがWebに基づいている場合、ajax呼び出しを使用しても問題ありません。これがほとんどの場合、ローカルストレージは、データがデバイス上でのみ作成/表示される場合です(メモをとるアプリのように)。誰かがオフラインでアクティビティを表示できるようにローカルストレージを提供したい場合は素晴らしいですが、これは必須ではない機能です。

ほとんどの人は、ユーザーが同じデータを何度も何度も要求し、頻繁に変更されない場合にのみこれについて考え始めます。最後に変更されたシステムを開発する必要があります。ここで、ajax呼び出しを送信して、新しいものがあるかどうかを確認します。ローカルから読み取られない場合。データが動的で頻繁に変更される可能性がある場合は、ajax呼び出しを使用してください

于 2012-06-20T13:50:43.893 に答える