0

我正在尝试使用 phonegap 开发移动应用程序,但我遇到了问题。

    function onBodyLoad(){


$('#contentdining').load('http://localhost/m/contentdining.php',
{reloadPage:true});

var id = getUrlVars()["id"];
var product = serviceURL+'contentproduct.php?id='+id;
$('#contentproduct').load(product,{reloadPage:true});

});

在 index.html 中,我的问题是“无法刷新

4

2 回答 2

1

reloadPage选项对函数无效.load(),它对$.mobile.changePage()函数有效:

$.mobile.changePage('some-url.html', {
    reloadPage : true
});

文档:http: //jquerymobile.com/demos/1.1.0/docs/api/methods.html

请注意,这仅适用于外部页面。因此,如果您的应用程序在一个 HTML 文件中包含所有伪页面,则您无法使用此功能。但是,如果您只是将伪页面从单个 HTML 文档中拉出并制作它自己的一个,则可以。

否则,您可以使用.load()重新加载页面,但要确保从服务器返回的 HTML 创建了有效的 jQuery Mobile 页面结构:

<div data-role="page">
    <div data-role="content">
        ...
    </div>
</div>

这是文档.load()http ://api.jquery.com/load/

请注意,您使用的方式.load()是传递一个数据对象,因此您正在加载的 URL 接收一个名为reloadPageset to的 GET 变量true。因此,要使您的页面可以使用.load(),只需删除{ reloadPage : true }.

您可能遇到缓存问题,在这种情况下,我建议您使用$.ajax(),以便您可以指定不允许缓存内容:

$.ajax({
    url     : serviceURL + 'contentproduct.php?id=' + getUrlVars()["id"],
    type    : 'get',
    cache   : false,
    success : function (response) {
        $('#contentproduct').html(response);
    },
    error   : function (a, b, c) { console.log(b); }
});

设置cache : false会在 AJAX 请求的 URL 的末尾放置一个时间戳,因此每次都会抓取一个新版本。

于 2012-06-19T19:51:07.787 回答
0

完成...感谢所有+ @jasper ..我有其他解决方案...我上次使用刷新获取URL中的参数(使用GET)..但是1天发现他们仍然不能

现在我使用其他解决方案(POST)方法

这是我的代码

在php中

<a href="#product?id=<?php echo $row_getd['id_product']; ?>" style="text-decoration:none;color:#333;" onclick="onBodyLoad1(<?php echo $row_getd['id_product'];?>);">

在 .js 中

  var serviceURL = "http://localhost/m/";
    //var serviceURL = "http://kimpuler.com";

function onBodyLoad1(idku){

    var id = getUrlVars()["id"];
    var product = serviceURL+'contentproduct.php?id='+id;
    $("#contentproduct").load(product,{'id':idku}, function(){
    location.reload;
    });

希望能在像我一样的问题时对其他人有所帮助..

也感谢@jasper..你真的很棒的人......你的代码给了我灵感,并将在未来使用......

关注 jk

于 2012-06-20T13:54:43.967 回答