Jquery changPage函数不会停止缓存请求

时间:2012-02-23 05:46:40

标签: jquery jquery-mobile

好的,所以我会尽力解释这是怎么回事。这是针对移动设备的,所以我使用的是Jquery mobile。

1)用户从项目列表中选择 - >尚未在DOM页面中使用外部。

2)用户将表单发送到尚未在DOM中的另一个外部页面。

3)此页面每2秒刷新一次div,使用此代码获取我们刚刚提交的元素的状态(大约需要15秒才能到达我们的最终状态点)。

<script>
$('#status').empty();    
setInterval(function() {
$('#status').load('/call/status/<?php echo $call->sid?>');
}, 2000);
</script>

4)一旦达到最终状态消息,我们想要刷新并将它们带到第一组元素中的元素(在第1点)。我正在使用此代码作为最终消息,以将更改页面事件触发回第一组页面。

<script>$.mobile.changePage("#inbox",{transition:"slideup"} ); </script>

奇怪的是,我可以让这个工作,但只是第一次。一旦我回到这个过程,它原来的#status div仍然被缓存,并试图过早地将我带回#input。

你可以看到我有$('#status')。empty();如果这个div在下次出现时已经被销毁了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我推荐的代码,但这不会清空容器。这不会解决您的初始问题,但我认为您会发现它的工作更顺畅。这将确保您在上一个请求完成之前没有将请求发送到服务器,setInterval会这样做,它不知道请求是否已经完成。我推荐(当你要涉及任何服务器调用时,甚至是任何时候真的.SetInterval没有任何好处)至少使用这种方法,而不是间隔。

function status(){

    $('#status').load('/call/status/<?php echo $call->sid?>', function(){
    //this is to be performed on success of the load
    setTimeout(status, 2000);
    }); 

}
setTimeout(status, 2000);

我很乐意尽力解决您的初始问题,但我需要更多详细信息才能确切了解其工作原理。