不知道 pushState 是何物的同学请百度 html5 history ##需求 整站都使用Ajax加载,但同时必须保证能被搜索引擎(例如百度)正常收录,而且即使浏览器不启用javascript,网站也能正常访问 ##为什么要有这个需求 很多网站都有公共的页头和页尾,然而他们总是在每一次的响应中返回这些公共的部分,浪费了服务器带宽;比较流行的通过改变网址中的hash并结合window.onhashchange事件来加载内容的网站,却又无法被百度正常收录;而且,一旦用户不启用javascript,这样的网站就无法正常显示 ##这不可能? 去**我的博客**看看吧= =。这是一个使用 HTML5 中的新 History API 完成的站点,即使浏览器不支持 HTML5 、甚至不启用javascript,网站也能正常访问。 ##网站架构 前端:Html5 History API + ejs 后端:nodejs + express + ejs + mongoose
##哈哈,其实很简单 我说的有点神秘了,其实只不过是当客户端不支持html5或者不启用js时,后台就会切换成传统的访问方式,每次访问时会将公共的页头页尾一并返回;之所以能被搜索引擎正常收录,是因为第一次打开页面会将内容一并返回到前端,而不是通过ajax加载的内容,之后的点击才是通过ajax改变了内容。
放假闲来无事,从突发奇想到草草完成只花了今天一天时间,请各位大神毫不留情的拍砖~