携帯でのsleepの挙動

このQ&Aのポイント
  • 携帯でのsleepの挙動について調査した結果、PCと携帯での表示に差異があることがわかりました。
  • 共有レンタルサーバー上の個人サイトでの画面出力後にメール送信する際にも同様の現象が発生します。
  • 原因や解決策についてはまだ情報が見つかっていないため、情報共有をお願いします。
回答を見る
  • ベストアンサー

携帯でのsleepの挙動

sleep、ob_flush、flushを使って "あああ"を表示してから2秒後に"いいい"を出す  echo "あああ<br />";  ob_flush();  flush();  sleep(2);  echo "いいい\n"; というシンプルなスクリプトを作ったところ、 PCではうまく表示できるのですが、 携帯(ドコモを使用)では2秒間は何も表示しないまま眠ってしまい、 2秒後にすべての文字列が出力されます。 携帯サイトでも、PCと同じ挙動にすることは可能でしょうか。 また、auやsoftbankも同じ現象がおきるのでしょうか。 (テスト端末がドコモだけだったので他キャリアは未確認です) 共有レンタルサーバー上の個人サイトにて、 画面出力後にメール送信をしたいと思ったのが、 この現象を疑問に思ったきっかけです。 一通り検索したところ、同じ現象の報告は一件ヒットしたものの、 原因や解決策が見つけきれなかったため、投稿させていただきました。 当現象について、ご存知の方がいらっしゃいましたら、 ぜひ情報を共有させてください。よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

クライアントの都合なので、こればかりはサーバ側から制御できません。また端末による差異がある可能性もあるので、実機確認しか手はないでしょう。 PCでも余計なキャッシュをしてしまうブラウザがあって、空白を200バイトくらい出さないといけなかった記憶があります(詳細は忘れてしまった・・)。

mimoty
質問者

お礼

回答どうもありがとうございます! PCのブラウザでも、クセのあるタイプがあるのですね。 携帯サイトでは、解決策がないと受け止めたのですが、 代替策アイディアがあったら、引き続きお知恵を貸してくださいませ。 phpスクリプトなのでマルチスレッド(プロセス制御でしたっけ??)もできず、 レンタルサーバのためシェルコマンドも制限があります。 もっとシンプルな問題なのかもと思いつつ、うまい方法が浮かばず、いまだ悩んでいます。

関連するQ&A

  • ob_start()した後、ob_flush()しなくても出力される件。

    いつもお世話になっております。 バージョン:PHP5.2.5 【1】 <?php ob_start(); echo 'test'; ?> 【2】 <?php ob_start(); echo 'test'; ob_flush(); //【1】との違いはここだけ。 ?> 【1】のように、 ob_flush() の記述のない書き方でも「test」が出力されてしまうのは、なぜなのでしょう? (実際、試してみたところ、出力されてしまいました。) 「?>」の記述をもとに、自動的にflushしちゃう仕様なのでしょうか? 通常であれば、【2】のように書かないと、「test」は出力されないのではと私は思っているのですが…。

    • ベストアンサー
    • PHP
  • ホームページ訪問者の閲覧時間を知りたいです。CGI等で可能?

    自分のサイトの訪問者が各ページを何秒見ているか知りたいです。詳細はわからなくても10秒未満or以上とかならPerl等で判明しないだろうかと考えています。お詳しい方、よろしくお願いいたします。 *ちなみに関数sleep(10);で10秒後に動くPerlを考えましたが、まるで10秒間そのページをダウンロードし続けているかのような挙動になってしまいNGでした…

  • スリープ状態にしようとするとブルースクリーンが表示される

    スリープ状態にしようとすると、 電源ボタンが付いたまま画面が真っ暗になり、 そのままスリープ状態になるかと思ったら2、3分後にブルースクリーンが数秒の間だけ表示されてすぐに再起動してしまいます。 これは稀に見られる現象で、1か月に1回ほど起こるのですが・・・。 OSはwindows vista home premiumで、PCはNECのVW790/Hです。 このような現象が起こるのを防ぐためにはどうすれば良いでしょうか?

  • windows7がスリープになりません。

    windows7がスリープになりません。 スリープモードになるときとならないときがあるようで、いろいろやりつつ調べたところ、音楽を再生している(orニコニコ動画などを表示している)ときはスリープモードになってくれないようです。 電源設定から(メディアを共有するタイミングなど)いろいろいじってみたのですが全く原因がわかりません。PCをつけっぱなしで寝てしまうことなどがよくあるので、音楽、動画の再生中でも1時間入力が無ければスリープモードに移行してほしいのです。 設定方法分かる方、ご教授お願いします

  • php ob_flushが全く動作しない

    echo "<p>処理を開始します。しばらくお待ちください…</p>\n"; echo str_pad(" ",4096)."\n"; ob_end_flush(); ob_start("mb_output_handler"); for ( $i = 1; $i <= 3; $i++ ) { sleep( 2 ); // 時間がかかる処理 echo "<p>". $i * 10 ."件の処理を完了しました</p>\n"; ob_flush(); flush(); } echo "処理が完了しました\n"; サンプルのプログラムを記述しておきます。 重要な点として、 1.以前は正常に動作していました。 2.サンプル実行で実際の動きを見せるようなっている他サイトも動作しません。   それらは、おそらく、正常に動作しているのでしょうが・・・・。 このプログラムを実行しているサーバーの問題ではない気がします。 なぜなら、他のサンプルサイトの実行結果も、正常に動作しないからです。 firefox , IE8 どちらも、全ての処理が終わってから、まとめて表示されます。 あらゆる対処方を施しましたが、結果は変わりません。 これは、私のパソコンがおかしいのでしょうか? パソコン側で設定する事など出来るのでしょうか? 原因や対処方が分かる方がいらっしゃいましたらご教示お願い致します。

    • ベストアンサー
    • PHP
  • 携帯用Flashでいきずまり;w;

    携帯用のFlashを制作したのですが、 携帯(ドコモ、ソフトバンク、AU各種)で、 フレーム数を変えた別Flashを携帯で読み込んだあとに 再度、制作したFlashを読み込むと 最初とは明らかに表示スピードが遅いものになって 表示されてしまうんです。 ちなみにPCでは正常でした。 携帯に限ったことでもあるので ハード的な制約があるのかもしれません。 ただ、調べてもそれっぽい情報が乗ってません。 わかる方がおられましたら是非おこたえいただきとうございます。 よろしくおねがいいたします。

    • ベストアンサー
    • Flash
  • fork()の挙動について質問させてください

    fork()の挙動がいまいち良く分からないので質問させてください。 自分はPHPでなのですが、fork()はCで使われるのが多いだろうということと、概念を知りたいとの事でこちらで質問させていただきました。 以下のように書きLinuxの端末にて実行しました。 目的は、 1. 2つの子プロセスを作り、それらを同時並行処理したい 2. 同時並行処理なので3秒後に処理を終わらせて出力したい という事です。 #!/usr/local/bin/php -q <?php $time = time(); $pid = pcntl_fork(); if ($pid == 0) { $j; for ($j=0; $j < 3; $j++) { printf("child1: %d\n", $j); sleep(1); } } else if($pid > 0) { pcntl_wait($status); print ("Parent-a\n"); } else { die('fork できません'); } $pid = pcntl_fork(); if ($pid == 0) { $i; for ($i=0; $i < 3; $i++) { printf("child2: %d\n", $i); sleep(1); } } else if($pid > 0) { pcntl_wait($status); print ("Parent-b\n"); } else { die('fork できません'); } echo "time:" . (time() - $time) . "sec\n"; すると、6秒後にまず child1: 0 child1: 1 child1: 2 child2: 0 child2: 1 child2: 2 time:6sec child1: 0 child1: 1 child1: 2 Parent-b time:6sec が出力され、その3秒後に Parent-a child2: 0 child2: 1 child2: 2 time:9sec Parent-a Parent-b time:9sec が出力されました。 分からない点は以下の通りです。 1. Parent-bがParent-aより前に表示されたり、 child1: 0 child1: 1 child1: 2 child2: 0 child2: 1 child2: 2 及びParent-a Parent-bを出力したいのに、 なんかそれ以外のものが色々と不思議な順序で出力されている上、 9秒も処理時間にかかり、並行処理ではなく逐次処理になっているように見える。 2. 確か"Unix/Linuxプログラミング理論と実践"だったと思うのですが、Unix系の本にて 子作成(親のコピー) -> 子処理中、親は居眠り -> 子exit() -> 親wait() -> 親起きる という感じで書かれていたように思いますが、 実行例のParent-a等を見ると、挙動が分かりません。 長くなり申し訳ございませんが、もし宜しければ間違っている点をご指摘していただけないでしょうか? また、上記に書いた"目的"を実現するためのCなどで宜しいですのでコード例など部分だけで宜しいですので挙げて頂けたら幸いです。 申し訳ございませんが、宜しくお願いいたします。

  • スリープ後にストリーミング動画再生がおかしくなる

    Youtubeやニコニコ動画等のストリーミングで動画を視聴するサイトで動画を読み込んだ後、 スリープをして復帰すると再生がおかしくなります。(ブラウザを更新して再度読み込めば直るのですが) 音声は正常に流れているのに、映像の方はスリープ前にシークバーがあった位置から0.1秒ぐらいの極短い時間を延々とループ再生していて、まるでガクガクと痙攣しているかのようになって一行に先に進みません。 例えば http://www.youtube.com/watch?v=zjoBxCJnDqE この動画を3秒辺りまで再生してからスリープして復帰しまた再生すると、 音声は通常のままで、映像は赤ちゃんが激しく小刻みに頭を揺らすだけになり先に進みません。 この現象は必ず起こる訳ではないですが、運なのか動画の種類によって起こるか起こらないかが左右されているのかは分かりません。 環境は以下の通りです。 OS:Windows 7 Home Premium 32bit ブラウザ:firefox3.6.8、IE8 (両方で同じ症状を確認しています) グラフィック:Radeon HD 4250 (ドライバは最新です) Adobe flash playerも最新です。 地味に面倒な現象なので、よければアドバイスをいただきたいです。

  • 携帯サイトでのFlash

    携帯サイトでFlashアニメーション使いたいと思っています。 携帯サイトに使うFlashを制作する際、気をつける点は何でしょうか? またau、Docomo、Softbankの3キャリアで幅広い機種で問題なく表示させるにはどのような記述にすればいいでしょうか?

  • ParaFla! で作った携帯FLASH画像について

    ParaFla! で作った携帯FLASH画像について教えてください。 docomoの携帯なので、外部サイトにアップして、そこからDLして携帯に保存しました。 外部サイトでは、FLASHが繰り返し行われているのですが、携帯に保存した画像はFLASHが繰り返されません。 (最後の画像で止まってしまいます) 繰り返し行うにはどのようにすれば良いでしょうか? ちなみに携帯はdocomo F906iです。

専門家に質問してみよう