简单地说,我的网站包含一个从数据库中读取的项目列表,在左手面板中。用户可以选择一个项目,项目的完整详细信息显示在中心面板中,这是一个iframe。
使用iframe的原因是,整个页面不必刷新,这意味着重新读取数据库以重新生成项目列表-我只需要一次读取以获取项目详细信息,然后将列表留在屏幕上供后续选择。
生成项目列表的sql实际上相当复杂,而且数量可能相当大,所以从架构的Angular 来看,每次选择一个项目时都重新生成整个页面是没有意义的。
从用户的Angular 来看,所选择的每个项目在中心面板中生成全新/不同的内容。
我的问题是,谷歌似乎有问题索引这一点。特别是我认为,谷歌考虑到'标题'的主页,这是总是一样的,但可能忽略了'标题'的iframe '页',其中有真实的的内容和具体的标题的真正内容。
我不相信在不重新生成主页的情况下为主页生成真实的的内容特定的标题在逻辑上是可能的,因此必须重新读取数据库。有没有什么方法可以让google使用iframe页面的“标题”来正确描述内容?
谢谢。
1条答案
按热度按时间332nm8kg1#
很明显,如果不刷新页面并因此不刷新包含重要数据库读取结果的iframe,则不可能刷新主页“title”。
此外,没有办法让谷歌使用iframe的“标题”优先于主页。
所以,我不得不去与epascarello的评论:刷新主页并考虑使用缓存来克服由于额外的数据库读取而导致的性能下降。
我现在已经改变了系统来刷新主页,并且暂时(低活动级别)我还没有实现特定的缓存。
我仍然对我认为是次优的方法感到有点恼火。我不喜欢菜单中的指示灯,因为它是不必要的刷新。还有一点附带损害,因为当列表是可折叠的时,刷新不会让用户处于相同的(展开)位置-即它被刷新为完全折叠。
我现在需要研究在活动增长时进行缓存的最佳方法。而不是直接跳进去使用PHP缓存功能,我突然意识到自动缓存可以在许多地方发生,而不需要我做任何事情:MySQL; PHP;Apache;浏览器-我从哪里开始尝试和理解这一切?