假设我有一个“报告”页面,可以通过Javascript进行自定义。假设我有start_date,end_date和type(“simple”或“full”)可以更改。现在我希望地址栏始终包含当前(自定义)视图的“永久链接”,以便用户可以轻松复制。
如果我在没有Ajax的情况下执行此操作,我只需使用类似“/ report /?start_date = 2010-01-01& end_date = 2010-01-31& type = full”的内容作为固定链接。但由于我想从Javascript更新URL,我需要使用锚点(#),否则需要重新加载整个页面。
在这种情况下,是否有关于如何生成永久链接的最佳实践?我会选择“/ report /#start_date = 2010-01-01,end_date = 2010-01-31,type = full”之类的东西,然后用Javascript解析那个东西。是否有更好或更普遍接受的方式来解决这个问题?
另外,有没有更好的方法来处理Javascript方面而不是简单地解析所有内容?
感谢。
答案 0 :(得分:1)
我最终使用http://example.com/resource/#param1=value1¶m2=value2形式的网址。我写了一些Javascript代码来处理这个问题(解析/更新URL)。如果有人有兴趣,代码是on Github。
答案 1 :(得分:0)
如果您有指向域资源的链接,最好的方法是:
some/site?start=4&end=10
)为这些链接添加一个类,为您的javascript提供一个挂钩
<a href=".." class="ajax">Some resource</a>
例如,在PHP中,您可以轻松查看$ _SERVER变量并决定是返回整页响应还是准备好响应ajax:
function isXmlHttpRequest()
{
return isset( $_SERVER[ 'HTTP_X_REQUESTED_WITH' ] ) &&
($_SERVER[ 'HTTP_X_REQUESTED_WITH' ] == 'XMLHttpRequest');
}
本地页面资源
html喜欢:
<a href="#first">First</a>
<a href="#second>Second</a>
<div id="first">lorem</div>
<div id="second">ipsum</div>
您不必解析任何内容,您只需显示带有id的正确div,您将直接从a[href]
获取..这被认为是一种很好的做法,因为您的页面即使关闭JS,仍然可以访问。