同期に関する次の記事を見つけました。
http://www.databasejournal.com/features/sybase/article.php/3769756/The-Missing-Sync.htm
技術的な詳細には触れませんが、この戦略を実装するコーディングの種類は推測できます。
また、サーバーからの派手な通知がないため、同期戦略が必要です。
たとえば、modelLocator に会社のリストがあります。頻繁に変更されるわけではありません。ページネーションを考慮するほど大きくはありません。ユーザー アクションごとにすべてをリロード (removeAll()) したくありませんが、アプリケーションがクラッシュしたり、破損したデータを更新したりしたくありません。アプリケーションの別のインスタンスから更新または削除された場合。
私が今行っているのは、SESSION に SELECT 日時を保存することです。データを更新するために戻ってきたら、SELECT WHERE last_modified>$SESSION['lastLoad']
このようにして、データをロードした後に変更された行のみを取得します (ほとんどの場合 0 行)。
明らかに、INSERT と UPDATE ごとに last_modified を更新する必要があります。
DELETE の場合は、よりトリッキーです。男が彼の記事で指摘しているように、「もはや存在しないレコードをどのように送信できますか」
どのアイテムを削除する必要があるかをフレックスに伝える必要があるため(たとえばIDで)、DELETEで実際にDELETEすることはできません:)
ユーザーが会社を削除するときは、代わりに UPDATE を実行します。deleted=1 次に、会社を更新すると、deleted=1 の行について、ID を flex に送り返すだけで、この会社がモデルに含まれていないことを確認できます。
大事なことを言い忘れましたが、deleted=1 で last_modified が 3 日以上経過している行、またはニーズに合ったと思われる行を消去する関数を作成する必要があります。
良いことは、ユーザーが誤って行を削除した場合でもデータベースに残っているため、実際の削除から 3 日以内に保存できることです。