1

我正在开发基于 asp.net 网络表单的网站的多语言移动版本。到目前为止一切都很好,除了一个问题,即当我从一种语言切换到另一种语言应用程序下载更正了 CSS 版本但除非我不按 Ctrl + F5 否则无法生效。

我正在使用使用 LTR 和 RTL 方向的英语和阿拉伯语版本,因此需要更改 css。

即使 HTML 源代码显示每种语言的正确 css 版本,我也不确定 css 是否以某种方式被缓存,如下所示。

英文版

<script src="../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script src="script/jquery.mobile-1.3.0/jquery.mobile-1.3.0.js" type="text/javascript"></script>
<link href='script/jquery.mobile-1.3.0/jquery.mobile-1.3.0.css' rel='stylesheet' type='text/css' />
<link href='style/mobile-english.css' rel='stylesheet' type='text/css' />

阿拉伯语版

<script src="../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script src="script/jquery.mobile-1.3.0/jquery.mobile-1.3.0.js" type="text/javascript"></script>
<link href='script/jquery.mobile-1.3.0/jquery.mobile-arabic-1.3.0.css' rel='stylesheet' type='text/css' />
<link href='style/mobile-arabic.css' rel='stylesheet' type='text/css' />

设想

例如,如果我先转到英文版,然后单击阿拉伯文版本,它将使用英文 CSS 而不是阿拉伯文 css,反之亦然。但是如果我按 CTRL + F5 然后它会使用正确版本的 css

我将不胜感激这方面的帮助

4

2 回答 2

1

在这种情况下,您可以在加载新样式后刷新同一页面。

$.mobile.changePage(
 window.location.href, { // or '#PageID'
    allowSamePageTransition: true,
    transition: 'none',
    showLoadMsg: false,
    reloadPage: true // Forces page reload if you're using 'window.location.href' or url
});

上面的代码将重新加载页面而不transition刷新其内容。

这是一个示例

于 2013-03-20T11:12:52.923 回答
0

我设法通过使用以下 jquery 使其工作

$(document).ready(function () {
    $('form, a').removeAttr('data-ajax');
    $('form, a').attr('data-ajax', false);
});

我尝试了几种解决方案,但它们都没有工作,因为它一直使用第一次下载的 CSS,无论是英文版还是阿拉伯文版。

禁用缓存可能还有其他问题,但另一方面我必须使用正确版本的 css

于 2013-03-20T11:58:14.013 回答