主页内容是否即时填充?

时间:2010-06-14 17:57:01

标签: javascript dynamic layout web innerhtml

有没有理由不让网页动态检索它的主要内容?

例如,我有一个页眉,页眉和页脚,在这个页面的中间是一个空div。当您单击标题中的一个按钮时,http GET在幕后完成,空div的.innerHTML()将替换为结果。

我想不出有什么理由为什么这可能是一个坏主意,但我似乎无法找到任何可以做到这一点的页面?请指教!

6 个答案:

答案 0 :(得分:4)

这不是闻所未闻,但也有问题。

  • 显而易见的是,出于安全原因,有些用户关闭了javascript,他们根本无法使用您的网站。

  • 它还会对使用辅助技术的残障用户产生负面影响,例如屏幕阅读器。

  • 它可以使浏览器更难以有效地缓存静态内容,从而减慢浏览体验。

  • 它可能使搜索引擎难以索引您的内容。

  • 除非采取特殊措施使其正常工作,否则可能导致后退和前进按钮停止工作。

  • 调试问题也很烦人,但如果你使用像Firebug这样的工具肯定不是不可能。

我不会将它用于静态内容(纯网页),但无论如何,它对于动态更新的内容来说无疑是一种合理的方法。

答案 1 :(得分:1)

如果没有额外的工作,它会杀死后退和前进历史记录按钮,并且很难链接到每个按钮加载的页面。您必须实现某种URL更改机制,例如通过对URL哈希中最后点击的页面进行编码(例如,当您单击按钮重定向到#page-2或其他任何内容时)。

它还会使禁用JavaScript的用户无法访问您的网站。良好网页设计的原则之一是“优雅降级” - 使用JavaScript或Flash或CSS等高级功能增强您的网站,但如果它们被禁用仍可正常工作。

答案 2 :(得分:1)

两个注意事项:Search engine optimization (SEO)和书签。

是否有直接访问您的标题链接的网址?如果是这样,你(几乎)就好了。例如,以下代码是SEO友好的,并根据您的需要填充您的页面:

<a href="seoFriendlyLink.html" onclick="populateOnTheFly(); return false;">Header Link</a>

当人们试图通过JavaScript加载他们加载的页面时,就会发生这种情况......这种情况不会发生。您可以抛出大部分可能的推文,电子邮件推介和首页Digg / Reddit文章。普通用户不知道如何链接到您的内容。

答案 3 :(得分:0)

你在哪里读到它是一个坏主意?它纯粹取决于要求是否即时填充内容。但是,在大多数情况下,内容会随页面一起加载而不是动态,但如果您需要您的内容,那么这应该不是一个坏主意。

如果您的内容是通过javascript加载的,并且在用户的浏览器上禁用了javascript,那么肯定 这是一个坏主意

答案 4 :(得分:0)

我不能想到这个的坏理由(除了可能的搜索引擎优化),有一件事可能是个好主意只加载数据一次。即

<a href="javascript: showdiv1()">Show Div1</a> - do ajax/whatever only if the innerhtml is blank

<a href="javascript: showdiv1()">Show Div2</a> - do ajax/whatever only if the innerhtml is blank

<div1></div>
<div2></div2>

这应该会降低服务器负载,因此divs内容只加载一次。

干杯

答案 5 :(得分:0)

这是启用ajax的网站中相当标准的行为。

请记住,需要额外的努力才能:

  • 确保后退按钮正常工作
  • 链接到(并添加书签)特定内容
  • 支持禁用javascript的浏览器。