解决方案我不喜欢,为什么
>仅使用ajax加载内容div:google将看不到任何内容,意味着该网站将永远不会被找到,或者仅仅是由ajax检索的部分,这些都不是完整的页面
>显示过渡效果,然后将用户重定向到指定的页面(捕获元素的点击事件):效果与链接到另一个页面几乎相同,例如.用户仍然会看到正在重新加载的页面
我想到了一个可能的解决方案:
当访问者单击链接时,捕获事件,使用ajax加载目标,同时显示过渡效果,然后使用ajax请求获取的内容重写整个文档.
至少这样做会有一些好处;页面重新加载会看起来无缝,无论您的互联网连接速度如何缓慢,谷歌不会真的介意,因为ajax内容是一个完整的HTML页面本身,并可以爬行,甚至非JavaScript浏览器(手机等.)不介意,他们只是重新加载页面.
我犹豫实施这种方法是我将使用ajax重新加载整个页面.我想知道如果这是ajax的意思,如果它会减慢事情.最重要的是,是否有更好的解决方案,例如.我的第一个“坏”解决方案,但略有不同,所以谷歌喜欢它(分析)?
感谢您的想法!
长回答:不推荐尽管如此,这并不是XHR / Ajax的意图.基本上你正在做的是复制浏览器的本机行为.你会遇到的一些问题:
>支持后退/转发
按钮.你需要一个URI#方案
解决
>浏览器必须解析
整个页面通过AJAX.
这会减慢事情.例如.如果
你加载了一个HTML块
浏览器,然后用DOM替换
它,只有那么会有任何脚本,CSS
或其中包含的图像开始
下载.
记忆 –
浏览器不改变页面.过度
时间(取决于浏览器),我会的
期望内存使用量增加.
>辅助功能.屏幕阅读器
每当需要收到通知
页面内容被更新.威力
不是你的关心,但值得
提.
>缓存.浏览器
不知道要缓存的页面
(超出初始负载).
分离问题 – 您的观点
基本上分成了
服务器端片段呈现
页面的内容以及静态
HTML的页面框架和
最后是JS来组合服务器
与浏览器片一块.
这将随着时间的推移进行维护
有问题和复杂.
>与其他组件集成 –
你已经看到了问题
谷歌分析.你可能会遇到
与其他组件相关的问题
到DOM的时间
建.