History.js - 共享AJAX加载页面的链接

时间:2012-12-07 16:55:21

标签: javascript jquery ajax html5

当我点击某些链接时,我有以下功能激活:

function showPage(page) {
    var History = window.History;
    History.pushState(null,null,page);
    $("#post-content").load(page + ".php");
}

页面内容更新,URL更改。但是我知道我肯定做错了什么。例如,当我刷新页面时,它会给我一个Page Not Found错误,加上新页面的链接无法共享,只是因为同样的原因。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

听起来您没有将动态网址发布到主应用。除非page指的是服务器上的物理文件,否则如果您希望这些URL不仅仅是浏览器历史记录中的占位符,那么您需要在服务器端进行一些URL重写。如果您不想弄乱服务器端,则需要使用其他策略,例如使用hashes来破解URL。这样,服务器仍然始终为您的主应用程序页面提供服务,然后应用程序页面会读取URL附加内容以确定需要动态呈现的内容。

答案 1 :(得分:0)

您需要停止依赖JavaScript来构建页面。

服务器必须能够自己构建它们。

然后,您可以progressively enhance使用JavaScript(pushState + Ajax)将上一页转换为目标页,而无需重新加载所有共享内容。

你的问题是你在建立基础之前已经完成了“增强”位。

相关问题