在浏览器中本地缓存菜单系统的最佳方式是什么?

在浏览器中本地缓存菜单系统的最佳方式是什么?

问题描述:

我有一个非常大的级联菜单系统,其中有超过300个项目。 (我知道它很大,但它是一个需求。)
目前,它是用JavaScript编写的,因此外部文件被浏览器缓存。在浏览器中本地缓存菜单系统的最佳方式是什么?

要改善搜索引擎结果,我需要将其转换为一个css菜单系统。
我意识到浏览器也将缓存外部样式表但是,

  • 是有缓存的菜单内容(<ul><li>标签)的方法吗?

如果我使用JavaScript(document.write)写的内容,我可以在一个外部JavaScript文件中有这样的,这将是本地缓存,但是,

  • 会这样搜索引擎友好?

什么是最佳解决方案?

完成你想要做的最好的方法是使用SiteMaps告知Google你的网站的网址。基本上你会想要将菜单的层次结构数据转换成一个SiteMap。

您可以事先将菜单生成为静态html/javascript文件,并让所有网页从您网站上的相同URL中拉出网站。这样,客户端浏览器就会进行缓存。您只需在您的部署中有一步生成菜单的html文件。

尽量让它生成尽可能多的纯HTML(+ JS + CSS),然后可以用javascript调整任何必须动态的东西。

你可以在CSS和HTML中完成整个事情,而且你不需要使用任何Java脚本。见< http://www.netwiz.com.au/cssmenu.htmlvalue>。本页显示了一个与特定文档软件一起使用的工具,但示例CSS和HTML显示了如何在大量浏览器中为CSS/HTML only菜单使用ul li元素。

您仍然有菜单中的300个项目的问题,这将增加加载时间。如果这是一个问题,我想你可以将这段代码移动到一个单独的iframe中,以增加它在代理(或浏览器)缓存的机会。冒着冒犯纯粹主义者的可能性,即使一个框架可能也能完成这项工作,但是如果主题页面直接链接,那么主题页面将无法显示菜单。