Имам някакво приложение за листинг за iPhone приложение, което винаги се обажда на уеб услуга на моя php сървър и извлича данните и ги показва на екрана на iPhone.
Нещото, което трябва да се вземе предвид в този сценарий, е моето приложение за iPhone всеки път, когато иска на сървъра и извлича данните.
Но сега моето изискване е като искам да заменя следния набор от действия с над един:
-> Всеки път, когато моето приложение се стартира в iPhone, трябва да проверява за новите данни на сървъра`.
-> И ако сървърът отговори "вярно", тогава само моето приложение за iPhone ще направи искане за получаване на данните.
-> В случай на "невярно", моето приложение за iPhone ще покаже данните която вече е кеширана в местния телефон памет.
Сега за изпълнение на този сценарий от страна на сървъра (който има php, mysql), планирам със следното решение:
Table : tblNewerData
id newDataFlag
== ============
1 true
Задействане: tgrUpdateNewData
По-горе спусъкът ще актуализира полето tblNewerData -> newDataFlag в Insert case на основната ми таблица.
И всеки път, когато приложението ми за iPhone ще поискаtblNewerData-> newDataFlag поле, и ако то е намерило вярно, само тогава ще създаде нова заявка, а ако намери грешно, тогава ще се покаже кешираната версия на данните.
И така, искам да знам това, правилен ли е начинът да го направите? или иначе друга налична интелигентна опция?
Благодаря предварително.
Отговори:
2 за отговор № 1Трябва да помислите дали вместо това полето да бъде брояч. Всеки път, когато в базата данни се правят каквито и да било промени, броячът се увеличава.
Сега, когато iPhone се свърже, той ще сравни този текущ брояч с брояча от предишния извлечение. Ако броячът се е променил, той ще извади актуализирани данни.