2

Webカメラ用のいくつかの個別のページ(* .htm)を含むjqueryモバイルサイトをまとめています。それらのページでは、カメラからの画像グラブを数秒ごとに更新し、ビデオをシミュレートする設定間隔関数をロードしています。

ただし、ナビゲーションリンクまたは戻るボタンを使用してwebcamページ(webcam.htm)から離れてindex.htmに戻ると、webcam.htmページがDOMに残り、数秒ごとに画像をプルし続けます。

ユーザーが離れるときにページをクリアするか、少なくとも終了間隔をクリアするにはどうすればよいですか?

<script type="text/javascript">
    function camfresh() {
        setInterval(function(){ $("#rmcam").attr("src", "image.jpg?"+new Date().getTime());},2000);
    }
</script>
4

1 に答える 1

2

pageshowおよびイベントを使用してpagehide、間隔を開始および停止できます。

var myInterval;
$(document).delegate('.ui-page', 'pageshow', function () {

    //note that `this` refers to the current `data-role="page"` element

    //cache `this` for later (inside the setInterval anonymous function)
    var $this = $(this);

    myInterval = setInterval(function(){
        $this.find("#rmcam").attr("src", "image.jpg?"+new Date().getTime());
    }, 2000);
}).delegate('.ui-page', 'pagehide', function () {
    clearInterval(myInterval);
});

セレクターをより具体的に変更できます.ui-page(現在、セレクターはすべての疑似ページを選択します)。

于 2012-08-06T20:24:12.917 に答える