QandAAnalysisEngineの開発で検討したこと。
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>SaaS設計のポイント]]
*目次 [#ybad882d]
#contents
*概要 [#l679a48e]
[[QandAAnalysisEngine>https://github.com/NetDevInfraWGinO...
*[[開発環境]] [#v0d5c726]
*HTML系 [#pbe32a9a]
-インタラクティブなコンテンツを使用してアンケート的なデー...
-タブレットを主要なプラットフォームに考えている。
--クロスプラットフォームで動作するように、HTML5で実装する。
--通信環境(Wi-Fi)が悪いことが考えられるので、オフライン...
**オフライン [#a40275be]
-オンライン環境でない場合に、オフラインで動作する方法を検...
-実装はHTML(HTML5)のWeb技術を使用する(スマホ・ネイティ...
-オフライン時に[[WebStorage>HTML#wb728540]]に溜め込んでバ...
-色々考え、処理系をオンライン・オフラインと切り替える必要...
-切り替えが面倒なので、一律、
--ローカルストレージに蓄積
--定期的な情報送信を行う。
>という方式が良いと考えた。
***チェック [#q38a2c13]
window.navigator.onLineでチェック可能。
-window.navigator.onLine - Web API インターフェイス | MDN~
https://developer.mozilla.org/ja/docs/Web/API/NavigatorOn...
***[[ストレージ>HTML#l92a65cd]] [#p8da057b]
-ポピュラーな、Key-Valueの[[WebStorage>HTML#wb728540]]が...
-スコープの関係から、[[WebStorage>HTML#wb728540]]のSessio...
**定期的な情報送信 [#ebdb9803]
***[[バック・グラウンド処理>JavaScript#d6ac8bf9]] [#kff9d...
setTimeoutやsetIntervalなどを用いることで実現できる。~
最新の「Web Workers」については、別に使用しなくていもイイ...
***JSON処理 [#na0590e9]
-[[クライアント側(JavaScript)>JavaScript#ff279ce5]]
-サーバー側(WCF)~
web.configの書き方は、下記のosscons.jpのマイクロソフト系...
--[[JSONを送受信するRESTサービスを作成する方法 - マイクロ...
>web.configの書き方が間違っていると動かないので注意
***成功と失敗 [#jdf9d92b]
-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をクリアしない(リトライ)
--サーバー側動作
---成功時~
---失敗時~
**[[エフェクト>JavaScript#k0f136b5]] [#r9a59047]
***[[効果音>JavaScript#cf0fca98]] [#q90775ad]
***[[アニメーション>JavaScript#se421493]] [#h1e40799]
***二重クリックの防止 [#z5837c06]
-マスク掛け
-マスク解除(setTimeout)
上記だけでは無理だったので、~
クリック後に変更される変数値を確認する実装とした。
*業務系 [#y76d0166]
**[[業務プロセス>QandAAnalysisEngineの業務プロセス]] [#d4...
**[[画面>QandAAnalysisEngineの画面]] [#q00fee63]
**[[テーブル>QandAAnalysisEngineのテーブル]] [#f6343f2f]
**[[SQL>QandAAnalysisEngineのSQL]] [#z37ed465]
*[[マッシュアップの検討]] [#v3653a0c]
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>SaaS設計のポイント]]
*目次 [#ybad882d]
#contents
*概要 [#l679a48e]
[[QandAAnalysisEngine>https://github.com/NetDevInfraWGinO...
*[[開発環境]] [#v0d5c726]
*HTML系 [#pbe32a9a]
-インタラクティブなコンテンツを使用してアンケート的なデー...
-タブレットを主要なプラットフォームに考えている。
--クロスプラットフォームで動作するように、HTML5で実装する。
--通信環境(Wi-Fi)が悪いことが考えられるので、オフライン...
**オフライン [#a40275be]
-オンライン環境でない場合に、オフラインで動作する方法を検...
-実装はHTML(HTML5)のWeb技術を使用する(スマホ・ネイティ...
-オフライン時に[[WebStorage>HTML#wb728540]]に溜め込んでバ...
-色々考え、処理系をオンライン・オフラインと切り替える必要...
-切り替えが面倒なので、一律、
--ローカルストレージに蓄積
--定期的な情報送信を行う。
>という方式が良いと考えた。
***チェック [#q38a2c13]
window.navigator.onLineでチェック可能。
-window.navigator.onLine - Web API インターフェイス | MDN~
https://developer.mozilla.org/ja/docs/Web/API/NavigatorOn...
***[[ストレージ>HTML#l92a65cd]] [#p8da057b]
-ポピュラーな、Key-Valueの[[WebStorage>HTML#wb728540]]が...
-スコープの関係から、[[WebStorage>HTML#wb728540]]のSessio...
**定期的な情報送信 [#ebdb9803]
***[[バック・グラウンド処理>JavaScript#d6ac8bf9]] [#kff9d...
setTimeoutやsetIntervalなどを用いることで実現できる。~
最新の「Web Workers」については、別に使用しなくていもイイ...
***JSON処理 [#na0590e9]
-[[クライアント側(JavaScript)>JavaScript#ff279ce5]]
-サーバー側(WCF)~
web.configの書き方は、下記のosscons.jpのマイクロソフト系...
--[[JSONを送受信するRESTサービスを作成する方法 - マイクロ...
>web.configの書き方が間違っていると動かないので注意
***成功と失敗 [#jdf9d92b]
-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をクリアしない(リトライ)
--サーバー側動作
---成功時~
---失敗時~
**[[エフェクト>JavaScript#k0f136b5]] [#r9a59047]
***[[効果音>JavaScript#cf0fca98]] [#q90775ad]
***[[アニメーション>JavaScript#se421493]] [#h1e40799]
***二重クリックの防止 [#z5837c06]
-マスク掛け
-マスク解除(setTimeout)
上記だけでは無理だったので、~
クリック後に変更される変数値を確認する実装とした。
*業務系 [#y76d0166]
**[[業務プロセス>QandAAnalysisEngineの業務プロセス]] [#d4...
**[[画面>QandAAnalysisEngineの画面]] [#q00fee63]
**[[テーブル>QandAAnalysisEngineのテーブル]] [#f6343f2f]
**[[SQL>QandAAnalysisEngineのSQL]] [#z37ed465]
*[[マッシュアップの検討]] [#v3653a0c]
ページ名: