在不刷新页面的情况下刷新内容,并使用漂亮的url';s(没有标签#-没有问号?)


Refresh content without refreshing page and with nice url's (no hashtags # - no question marks ?)

我有一个经典的问题,那就是在一个网站上,我希望保持标题和菜单div始终相同,然后在用户通过菜单输入时更改conentdiv。

我对php-include做了这件事,这很好,但当然,每次内容div更改时,整个页面都会刷新。这很好,因为刷新整个页面非常快。。。除了标志!所以我希望只是标题保持不变而不刷新(徽标保持良好的静态)。

一种解决方案是只使用Ajax刷新内容div,我知道,但据我所知(尤其是如果你想让内容可索引),你的url中会有标签,加上搜索引擎索引有点复杂(见此处)

我发现一些网站似乎"冻结"了菜单,而页面的其他部分发生了变化,URL完全像基本的html。例如http://www.dfab.arch.ethz.ch/注意左边的白色矩形区域在点击另一个菜单和简单的URL时不会刷新。知道这是怎么做到的吗?非常感谢。

我能理解你提到的网站:http://www.dfab.arch.ethz.ch/不使用任何类型的异步。它使用一个简单的javascript来预加载大背景图像,这不会评估你的问题:

<script language="JavaScript">
<!--
   function BilderVorladen() {
    document.Vorladen = new Array();
    if(document.images) {
        for(var i = 0; i < BilderVorladen.arguments.length; i++) {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = BilderVorladen.arguments[i];
        }
    }
}
//-->
</script>

最初问题的可能解决方案是:HTML iframes(有点难看,谷歌不鼓励),或者如果你想保持异步方法而不使用ajax,你的解决方案肯定是websockets(请参阅此处查看IE polyfills),但这也不会减轻SEO。

老实说,对于一个缓慢加载的标志来说,它们看起来都太夸张了。我宁愿改变方法,减少img的大小和/或格式,并确保img被缓存,这样它就必须第一次下载(通常是一个非常可接受的延迟)。