FileMaker Network_Check

キー・プラニングの木下さんが制作された、ネットのオンライン/オフラインをチェックするFileMakerプログラム。 いろいろ応用出来そうです。
0
きのぴー @Y_Kinoshita

Webビューアのキャッシュの頑固さに負けた。DBファイルの開閉、HTML head のキャッシュ制御まで無視するとは…あまりしつこいと嫌われるぞ。残る手段は http header の制御が効くかどうかだが、疲れたので今日は終わり。

2011-02-14 22:08:56
きのぴー @Y_Kinoshita

それにしても、Web ビューアは、進行状況バーに「サーバに接続できませんでした」と自ら表示しているのに、本体ではすでに接続できないサーバのキャッシュを表示するという動作は“仕様”というのに無理があると思うぞ。

2011-02-15 10:03:20
きのぴー @Y_Kinoshita

http レスポンスヘッダにキャッシュ無効の制御を加えても、Web ビューアはキャッシュを手放さず。処置なし。

2011-02-15 10:23:38
きのぴー @Y_Kinoshita

Web ビューアでネットワーク切断を検知することにようやく成功。実験方法が間違っていたね。FileMaker のファイル探しの行ったきり状態ではなく、指定の秒数でタイムアウトすることができる。

2011-02-15 11:48:26
きのぴー @Y_Kinoshita

何か説明が面倒な内容になったので、サンプルファイルをダウンロードできるようにするか。どこに上げるかな。

2011-02-15 14:52:04
きのぴー @Y_Kinoshita

#FileMaker でオンライン/オフラインを確認するサンプルファイルを公開しました。iPad/iPhone のように移動でネットワークが不安定な場合に役立つかもしれません。簡単な説明をこの後にツイートします。http://bit.ly/fud6ov

2011-02-15 15:09:15
きのぴー @Y_Kinoshita

FileMaker が共有ファイルを探しにいくと制御が戻ってくるのに時間がかかります。このサンプルは、Web ビューアを使って、Web サーバへのアクセスを基準にして、オン/オフラインを判断します。

2011-02-15 15:11:15
マスク.ド.ライジングサン / K.Iwasa. @kazukiiwasa

@Y_Kinoshita ありがとうございます!Webビューアがキャッシュを握りっぱなしになっているのがなぜ困るのか解かりました~♪

2011-02-15 15:11:37
きのぴー @Y_Kinoshita

本体スクリプトは、移植しやすいようにポータブルな作りにしてあります。他のスクリプトから所定の引数を渡して起動。そのスクリプト結果によって、自分の好きな処理に分岐してお使いください。

2011-02-15 15:13:19
きのぴー @Y_Kinoshita

フィールド名に依存しないように[フィールドを名前で設定]ステップを使っているので、FileMaker 10 以降でないと動きません。ご注意を。

2011-02-15 15:14:32
きのぴー @Y_Kinoshita

本体スクリプトを呼び出す時の引数を変えれば、好きなサーバに対して任意の文字列のデータが戻るかどうかで判断するよう、簡単にカスタマイズできます。

2011-02-15 15:16:07
きのぴー @Y_Kinoshita

ちなみに、Loop は Web ビューアが指定 URL にアクセスしてデータをロードするまでの待機のために使っています。1秒ごとの再開で10回なので、10秒プラスαでタイムアウトになるわけです。

2011-02-15 15:17:41
きのぴー @Y_Kinoshita

ただし、指定 URL へのアクセス動作は Loop 前に一回行うだけですので、Loop 中にオンラインになっても検知はできません。それも実装したい場合は、Web ビューアの URL を指定する動作の外にも Loop を作れば良いはずです。

2011-02-15 15:19:52
きのぴー @Y_Kinoshita

サンプルとして方法論を提示することが目的のファイルですので、細かいことはご自身で解析の上、ご自由に、自己責任にてご利用ください。

2011-02-15 15:21:20
山本康仁 @medicalmaccom

@Y_Kinoshita 簡易実装して確認したところ、webビューアーの挙動が十分実用に堪える程度にコンカレントであったことは確認しました。最近のスクリプトは複数の引数もちゃんと渡せるのですね。リトライ回数も設定できてすばらしいと思います。

2011-02-15 15:21:24
山本康仁 @medicalmaccom

@Y_Kinoshita イントラで使うには、タイムスタンプなどの簡易かつ高速なサーバーをたてて、キャッシュ対応するか、必ずリロードさせるjavascriptか何か書けばよいでしょうかね。

2011-02-15 15:24:05
きのぴー @Y_Kinoshita

@medicalmaccom ご評価いただき、ありがとうございます。11 はいろいろと便利になっています(笑)。

2011-02-15 15:24:13
Mei Ito @mei1000

@Y_Kinoshita 特別高度なコメントはできませんが、FM11/Win XP Pro SP3、ローカルファイルで動作確認しました。

2011-02-15 15:29:10
Koji Takeuchi @nemoux

@Y_Kinoshita こういうのはShell Scriptとかでよくやりますが、考えてみたらFileMakerでもこうすりゃよかったんですね。$FieldNameはフィールドなしで変数だけでもいいかも、とも思いました

2011-02-15 15:30:08
きのぴー @Y_Kinoshita

@medicalmaccom アクセス可能なネット環境に Web サーバが必要になります。ロードを確認するチェック文字列は任意に設定が可能です。

2011-02-15 15:30:54
きのぴー @Y_Kinoshita

ちなみに、サンプルは何らかのトリガでスクリプトが起動された時点で、オンライン/オフラインを確認する想定になっています。

2011-02-15 15:32:02
きのぴー @Y_Kinoshita

@nemoux FileMaker GO での動作を想定したので、外部との連携は Web ビューアしか使えなかったのです。昨日からごちゃごちゃ弄っているので、不要な部分も残っていると思います。脳内翻訳をよろしくです。

2011-02-15 15:34:55
きのぴー @Y_Kinoshita

ということで、私のオフ日の遊びはここまで。これから真面目にボルダリングに行ってきます(本末転倒、笑)。

2011-02-15 15:37:20
きのぴー @Y_Kinoshita

あぁ、もう少しスマートな書き方があったと気付いたが、サンプルなので良しとする。

2011-02-15 15:42:11
きのぴー @Y_Kinoshita

指が動かない。フリック入力がつらい…

2011-02-15 19:26:38