我在后端有一个带Java的现有Web项目。它使用绝对路径来链接页面。
我目前正在将项目转换为使用jQuery Mobile。我首先尝试使用相对网址,但更改项目中的整个网址结构并不容易,尤其是当动态生成许多网址时,找到与当前显示的网页相关的正确相对路径是有点复杂(主要是因为我们自己的AJAX调用针对服务器上的不同URL端点而不是页面本身。)
所以我开始考虑是否可以将JQM代码更改为仅使用绝对URL。我目前正在尝试将location.hash的使用更改为location.href,以使其重写URL中的整个路径,而不仅仅是散列后的部分。你有没有人尝试过吗?有可能吗?
旁注:为什么JQM首先具有带哈希的相对URL模型?它是否支持回溯?我似乎不太可能,因为他们将整个历史堆栈保留在urlHistory
字段中。或者只是处理页面内的相对链接?在这种情况下,不值得考虑在JQM中创建两个URL模式并让框架的用户决定使用哪个(可能在'mobileinit'中):如果实现使用相对链接(即静态HTML) JavaScript完成所有工作的项目,以及绝对链接的另一个项目(即在服务器上完成大部分计算的动态Web项目)?它还可以解决像http://server.com/folder1/folder2/page.html#../../index.html
...
答案 0 :(得分:1)
为什么JQM首先具有带哈希的相对URL模型?它是否支持回溯?
我理解为什么他们使用#来导航是因为他们希望页面感觉更原生。让一个页面保持所有内容并在“页面”之间使用平滑过渡会产生这种错觉,而不是点击链接然后等待下载全新页面。
关于尝试改造网站以使用jquery mobile,我在一些博客上看到:
<script>
$(document).ready(function() {
// disable ajax nav
$.mobile.ajaxLinksEnabled = false;
});
</script>
到目前为止,我还没有将其与现有页面一起使用,但从逻辑上讲,jqm会停止尝试将链接转换为上面建议的ajax请求。这意味着您在点击链接时会放弃一些转换,但这可能会节省相当多的时间来获取移动页面...只是希望我可以让它实际工作。