「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
QandAAnalysisEngineの開発で検討したこと。
HTML系 †
- インタラクティブなコンテンツを使用してアンケート的なデータを収集。
- タブレットを主要なプラットフォームに考えている。
- クロスプラットフォームで動作するように、HTML5で実装する。
- 通信環境(Wi-Fi)が悪いことが考えられるので、オフライン対応実装をする。
オフライン †
- オンライン環境でない場合に、オフラインで動作する方法を検討する。
- 実装はHTML(HTML5)のWeb技術を使用する(スマホ・ネイティブ解らんので)。
- オフライン時にWebStorageに溜め込んでバッチ送信みたいなことを考えている。
- 色々考え、処理系をオンライン・オフラインと切り替える必要があるので結構難しそうだと感じた。
- 切り替えが面倒なので、一律、
- ローカルストレージに蓄積
- 定期的な情報送信を行う。
という方式が良いと考えた。
チェック †
window.navigator.onLineでチェック可能。
定期的な情報送信 †
setTimeoutやsetIntervalなどを用いることで実現できる。
最新の「Web Workers」については、別に使用しなくていもイイかな。という感想。
JSON処理 †
- サーバー側(WCF)
web.configの書き方は、下記のosscons.jpのマイクロソフト系技術情報 Wikiが参考になる。
成功と失敗 †
- WebAPIの戻り値での判断は、二重登録の可能性があり、少々危険だと考える。
- トランザクションが成功した後にHTTPでエラーになると二重登録になる。
- HTTPで成功した後に、Session-Storageのクリアに失敗した場合も、二重登録になる。
- 上記の二重登録の問題を解決するために、レコードにIDを付与する。
- 店舗ID + 端末ID + 時間 ( yyyy/MM/dd HH:mm:ss SSS )
- 店舗ID : ユーザアカウントから取得可能。
- 端末ID : HTMLから取得する方法が無い。
- 時間 : dateformat.jsを使用して取得可能。
- 動作
- クライアント側
- 成功時
Session-Storageのクリア
- 失敗時
Session-Storageをクリアしない(リトライ)
二重クリックの防止 †
上記だけでは無理だったので、
クリック後に変更される変数値を確認する実装とした。
業務系 †