我有一个现有的网络项目与Java在后端。它使用绝对路径在页面之间进行链接。
我目前正在将该项目转换为使用jQuery移动。我首先尝试使用相对url,但在项目中更改整个URL结构并不那么容易,特别是当许多URL是动态生成的,并且找到与当前显示的页面相关的正确相对路径有点复杂(主要是因为我们自己的AJAX调用针对服务器上的不同URL端点而不是页面本身)。
因此,我开始思考是否有可能将JQM代码更改为只使用绝对urls。我目前正在尝试将location.hash的用法更改为location.href,以使其重写URL中的整个路径,而不仅仅是散列后的那部分。你们有人试过吗?有可能吗?
旁注:为什么JQM一开始就有带哈希的相对URL模型?是为了支持回溯吗?在我看来这不太可能,因为他们将整个历史堆栈都保存在urlHistory字段中。或者它只是为了处理页面内部的相对链接?在这种情况下,不是值得考虑在JQM中创建两种URL模式,让框架的用户决定使用哪一种(可能在‘mobileinit’中):一种是如果实现使用相对链接(即JavaScript完成所有工作的静态超文本标记语言项目),另一种是绝对链接(即大部分计算都在服务器上完成的动态web项目)?它还可以解决像http://server.com/folder1/folder2/page.html#../../index.html这样愚蠢的URL的问题……
发布于 2012-01-09 03:30:43
为什么JQM首先要有带哈希的相对URL模型?是为了支持回溯吗?
我对他们为什么使用#导航的理解是因为他们想让页面看起来更原生。让单个页面包含所有内容,并使用“页面”之间的平滑过渡,可以提供这种错觉,而不是单击一个链接,然后等待下载全新的页面。
关于尝试改造一个网站以使用jquery mobile,我在一些博客上看到了这样的建议:
<script>
$(document).ready(function() {
// disable ajax nav
$.mobile.ajaxLinksEnabled = false;
});
</script> 到目前为止,我还没有让它在我现有的页面上工作,但从逻辑上讲,jqm会停止像您上面建议的那样将您的链接转换为ajax请求。这意味着你在点击链接时放弃了一些过渡,但它可能会节省相当多的时间来获得一个移动页面up...just我希望它能真正工作。
https://stackoverflow.com/questions/5715142
复制相似问题