0

我有一个使用 jQuery Mobile 库的网站,并且有几个链接如下所示:

<a href="#news?A">News for A zipcode</a>
<a href="#news?B">News for B</a>
<a href="#news?C">News for C</a>

无论首先点击什么链接,浏览器似乎都会为所有具有相同#news前缀的后续链接缓存。例子...

  1. 用户点击第二个链接#news?B,浏览器正确转到#news?B
  2. 用户点击返回按钮,被带回家
  3. 用户点击第一个链接#news?A,浏览器错误地转到#news?B(从第 1 步缓存?)

如果我再次 shift-f5,那么之后我点击的任何链接都会从那时起成为“缓存”链接。有任何想法吗?我已经在我的手机和带有用户代理切换器的 Chrome 中对此进行了测试(假冒我的浏览器以为它是移动设备)。

编辑- 我想我在这里找到了答案,http://jquerymobile.com/test/docs/pages/page-dynamic.html。在更新此问题之前将进行测试和验证。

4

2 回答 2

0

尝试像这样使用它

<a href="#news_A">News for A zipcode</a>
<a href="#news_B">News for B</a>
<a href="#news_C">News for C</a>

如果您在其他地方访问它_,还可以更改要使用的代码?

您也可以使用 safari 在 iPhone 或 iPad 上进行比 chrome 的 UA 切换器更精确的测试。不过,Chrome 对 Android 测试很有用。你必须去偏好并启用开发者菜单。在开发者菜单中,您可以选择切换用户代理。

于 2012-05-22T14:09:17.350 回答
0

好的,我发现了问题,hash.location 没有更新到点击/点击的链接(剧院)。

我使用 data-url 属性来提取正确的信息:

例子:

$(document).on('pagechange', function (e, o) {
    var dataURL = $('#theater').attr('data-url'); // Use this for the Theater Location as hash is not updating
    var hash = location.hash;
    var action = hash.split('?')[0]; // #whatshot, #showtimes, #zip?{zip}, #theater?{zip},{theaterId}
    var args = dataURL.split('?')[1].split(',');
    var zip = args[0];
    var theaterId = args[1];

    // load theater movies
    codejkjk.movies.Api.GetTheaterMovies(codejkjk.movies.Mobile.Currents.ShowtimeDay(), codejkjk.movies.Mobile.Currents.ZipCode(), theaterId, function (theater) {
        codejkjk.movies.Mobile.Controls.CurrentTheater().html(theater.name);
        codejkjk.movies.Mobile.Controls.TheaterMovieList().html(
            codejkjk.movies.Mobile.Controls.TheaterMovieTemplate().render(theater)
        ).show().listview('refresh'); //.trigger('create');

        // set theaterMovieBackUrl
        theaterMovieBackUrl = hash; // set back url to current url

        $.mobile.hidePageLoadingMsg();
    });
});

我在 Chrome 控制台中使用了这个功能

于 2012-05-22T15:54:29.110 回答