.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

QandAAnalysisEngineの開発で検討したこと。

開発環境

HTML系

  • インタラクティブなコンテンツを使用してアンケート的なデータを収集。
  • タブレットを主要なプラットフォームに考えている。
    • クロスプラットフォームで動作するように、HTML5で実装する。
    • 通信環境(Wi-Fi)が悪いことが考えられるので、オフライン対応実装をする。

オフライン

  • オンライン環境でない場合に、オフラインで動作する方法を検討する。
  • 実装はHTML(HTML5)のWeb技術を使用する(スマホ・ネイティブ解らんので)。
  • オフライン時にWebStorageに溜め込んでバッチ送信みたいなことを考えている。
  • 色々考え、処理系をオンライン・オフラインと切り替える必要があるので結構難しそうだと感じた。
  • 切り替えが面倒なので、一律、
    • ローカルストレージに蓄積
    • 定期的な情報送信を行う。

という方式が良いと考えた。

チェック

window.navigator.onLineでチェック可能。

ストレージ

  • ポピュラーな、Key-ValueのWebStorageが良さそう。
  • スコープの関係から、WebStorageのSession-Storageを選択。

定期的な情報送信

バック・グラウンド処理

setTimeoutやsetIntervalなどを用いることで実現できる。
最新の「Web Workers」については、別に使用しなくていもイイかな。という感想。

JSON処理

成功と失敗

  • WebAPIの戻り値での判断は、二重登録の可能性があり、少々危険だと考える。
    • トランザクションが成功した後にHTTPでエラーになると二重登録になる。
    • HTTPで成功した後に、Session-Storageのクリアに失敗した場合も、二重登録になる。
  • 上記の二重登録の問題を解決するために、レコードにIDを付与する。
  • GUID
    • 長過ぎる。
    • ライブラリが無い。
  • 店舗ID + 端末ID + 時間 ( yyyy/MM/dd HH:mm:ss SSS )
    • 店舗ID : ユーザアカウントから取得可能。
    • 端末ID : HTMLから取得する方法が無い。
    • 時間 : dateformat.jsを使用して取得可能。
  • 動作
    • クライアント側
      • 成功時
        Session-Storageのクリア
      • 失敗時
        Session-Storageをクリアしない(リトライ)
  • サーバー側動作
    • 成功時
    • 失敗時

エフェクト

効果音

アニメーション

二重クリックの防止

  • マスク掛け
  • マスク解除(setTimeout)

上記だけでは無理だったので、
クリック後に変更される変数値を確認する実装とした。

業務系

業務プロセス

画面

テーブル

SQL

マッシュアップの検討


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-27 (金) 12:26:33 (848d)