【问题标题】:Main page content populated on the fly?动态填充的主页内容?
【发布时间】:2011-03-03 15:33:03
【问题描述】:

是否有任何理由不让网页即时检索其主要内容?

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

我想不出这可能是个坏主意的任何原因,但我似乎找不到任何页面可以做到这一点?请指教!

【问题讨论】:

    标签: javascript dynamic layout web innerhtml


    【解决方案1】:

    这并非闻所未闻,但存在问题。

    • 很明显,一些用户出于安全原因关闭了 javascript,他们根本无法使用您的网站。

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

    • 这会使浏览器更难有效缓存您的静态内容,从而降低浏览体验。

    • 这会使搜索引擎更难索引您的内容。

    • 它可能会导致后退和前进按钮停止工作,除非采取特殊步骤使其工作。

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

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

    【讨论】:

    • 太棒了 - 实际上这是一个专门在科技公司内部使用的页面,所以大多数这些问题对我来说并不是太重要(javascript 开/关、辅助技术、搜索引擎索引)。感谢您的快速回复 - 我会试一试,看看效果如何。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      是否有直接 URL 可以访问您的标题链接?如果是这样,你(几乎)没问题。例如,以下代码既对 SEO 友好,又可以根据需要填充您的页面:

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

      当人们试图为他们通过 JavaScript 加载的页面添加书签时,就会出现问题……这不会发生。你可以把大部分潜在的推文、电子邮件推荐和首页 Digg/Reddit 文章扔到窗外。一般用户不知道如何链接到您的内容。

      【讨论】:

        【解决方案4】:

        你在哪里读到的不是个好主意?内容是否会即时填充完全取决于要求。然而,在大多数情况下,内容不是与页面一起加载的,但如果您需要您的内容在运行中,这应该不是一个坏主意。

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

        【讨论】:

          【解决方案5】:

          我也想不出一个不好的原因(除了可能的 SEO),可能是一个好主意的一件事是只加载一次数据。即

          <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>
          

          这应该会降低服务器负载,这样 div 内容只会加载一次。

          干杯

          【讨论】:

            【解决方案6】:

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

            但请记住,需要付出额外的努力:

            • 确保后退按钮有效
            • 链接到(和书签)特定内容
            • 支持禁用 javascript 的浏览器。

            【讨论】:

              猜你喜欢
              • 2014-09-28
              • 2018-05-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-02-16
              • 2012-08-30
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多