2011-04-24 43 views
3

我有一个页面(http://myflashpics.com/picture/p9e0),侧面有一些用户信息,侧面有小缩略图。现在正在做的是链接到一个完全不同的页面,边栏也会重新加载。我想知道是否有可能更改图片,评论部分,标题以及URL,因此如果用户想要链接到任何地方。只刷新页面的一部分并更改URL? jQuery的?这可能吗?

这可能是不可能的 - 但如果是这样,我甚至不知道从哪里开始使用谷歌搜索,甚至开始了解这将如何工作。

所有的答案赞赏!链接和源代码也不错。

+0

你在找Ajax吗? – 2011-04-24 04:10:34

+0

当然...从来没有真正与它合作,所以我不知道。 – iosfreak 2011-04-24 04:27:51

回答

3

在支持HTML5的浏览器中,您可以使用window.history.pushState来执行页面的AJAX部分加载,并仍然完全更改页面的URL。这是GitHub使用的内容(请参阅一些更多信息以及展示their blog post, The Tree Slider技术的视频)。有关Dive Into HTML5 History API page这个主题的一些很好的信息。

在浏览器不支持HTML5,你要么必须使用location.hash(如果你想可链接的URL),或者不使用AJAX(加上当前执行棒)。我在uses jQuery这个任务中。

+0

请参阅[History.js项目](https://github.com/balupton/History.js),以获得支持'pushState'并仍然优雅地降级的库。 – 2011-04-24 04:45:47

1

总之,你不能改变URL无需重新加载的页面,但你可以使用AJAX来加载新数据广告,如果页面已更改。您也可以通过在地址栏中的“#”后面更改任何内容来跟踪历史记录。一个实现此功能的网站的好例子是grooveshark.com

+0

而不是像这样使用:http://mydomain.com/picture/randomstring图片,我应该将其转换为这样的mod_rewrite:http://mydomain.com/picture/#/short字符串,所以它会使用location.hash? – iosfreak 2011-04-24 04:30:43

1

你可以简单地使用ajax来做到这一点。如果您需要更改网址,请使用Javascript更改location.hash属性。

+0

难道不会像http://mydomain.com/picture/oldstring#newstring?我希望它能像这样工作:http://mydomain.com/picture/newstring – iosfreak 2011-04-24 04:26:25

+0

如果你不喜欢清爽,你需要去HTML5。 。否则,您需要更改'location.href'属性来刷新页面。检查history.js jQuery插件,这将是最佳解决方案。 – Shameer 2011-04-25 04:47:45