【问题标题】:Html content from Ashx handler does not shown in html source for search index来自 Ashx 处理程序的 Html 内容未显示在用于搜索索引的 html 源中
【发布时间】:2014-04-18 10:08:37
【问题描述】:

我通过 jquery 使用 dataType: 'html'type: 'GET' 和少量参数调用 ASHX 处理程序。

从 ASHX 处理程序中检索到一些结果。并使用内容类型“html”,结果(混合了 html 标记和 javascript)将(使用 jquery appendTo)附加到 div dvProducts。 从 ASHX 处理程序填充的 html 和 javascript 在每个浏览器中都可以正常工作。虽然在查看源代码中查看 div dvProducts 时,它是空的。 可以在 chrome 或 firefox 中使用适当的标签和层次结构检查 div。

基本上,它是按名称搜索产品和处理程序查询并设置布局显示。

仅当查看源代码时结果 div 为空时才会出现此问题。 这是谷歌缓存和索引页面所必需的。

请在这种情况下提供帮助,并建议是否有更好的方法。

【问题讨论】:

  • 查看源代码(和 goog)只看到第一次加载时页面上的内容。您是否因为某些要求而将产品列表设为空?
  • 不,该列表是在页面加载时填充的。用户可以在列表中应用某些过滤器。

标签: jquery asp.net httphandler ashx


【解决方案1】:

您需要填充 div 服务器端,而不是仅依赖 JavaScript。重构您的代码,以便您可以通过您的 asp.net 模板引擎插入 html。如果您使用的是 WebForms,请将代码放在用户控件中并从您的 ashx 中呈现它,以便 JavaScript 可以检索它(查看 RenderControl)。然后转到包含 div 的用户控件/页面并在那里插入新的用户控件。现在您不能附加从 ashx 中检索的 html - 您必须将 div 的 innerHTML 替换为 ashx 中的 html。

【讨论】:

  • Jan,这个想法很好。不幸的是,尽管我尝试了不同的其他技术,但它不起作用。最后,我打算在后面的代码中使用带有 jquery 的Repeater,以便可以索引页面内容。
【解决方案2】:

“从ASHX处理程序填充的HTML和JavaScript在每个浏览器中都在正常工作。虽然在查看Div'DVProducts'的视图源时,但它是空的。” em>

如果您确定处理程序正常工作,请在请求从jQuery请求或使用浏览器提供的调试工具后查看浏览器控制台。 因为如果您的处理程序正常工作,那么只需将处理程序响应到DIV即可不应该是一个问题。

如果您可以提供您的一些代码,那么社区将很容易引导您处于正确的方向

【讨论】:

    【解决方案3】:

    基本上Ajax生成的内容是动态的,不能被索引或爬取,看看这个 https://developers.google.com/webmasters/ajax-crawling/

    他们有一些方法/概念可以帮助你

    【讨论】:

      猜你喜欢
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多