【问题标题】:(javascript / else / noscript iframe) to reduce server processing?(javascript/else/noscript iframe) 减少服务器处理?
【发布时间】:2012-01-04 21:11:00
【问题描述】:

在我的网站上,我提供零售库存目录。我想将数据处理和渲染库存的负担放在客户端浏览器上,以减少我的服务器端处理和带宽。我还希望内容是机器人可抓取的。

我是这样想象的,但我想知道是否有更好的解决方案:

1:如果启用了javascript,则处理数据客户端

2:如果没有启用javascript,则处理数据服务器端:

<noscript>
<iframe>
php processing script
</iframe>
</noscript>

另外,请确认如果启用了 Javascript,iframe 将不会被加载。如果浏览器仍然处理它,那么这将违背我的目标。

最后,请确认 google bot 会抓取 iframe。我希望 iframe 被索引为加载页面的一部分,而不是单独的页面。 iframe 是从一个完全独立的域加载的,所以我担心 google 可能根本不会对其进行索引。

谢谢, 散货

【问题讨论】:

  • 你在这里谈论多少数据?如果您在每次页面加载时向客户端发送 50 兆字节的产品数据,那么您所做的只是惹恼了您的用户并大大增加了您的带宽费用。
  • 不,数据块很小,通常只是来自 mysql 查询的搜索结果集。这是对真实情况的抽象。我实际上将成为远程域,为潜在的数百家商店提供库存搜索服务。这可能相当于我试图减少的服务器端处理过多。

标签: javascript html iframe noscript inventory


【解决方案1】:

请确认如果启用 Javascript 将不会加载 iframe

是否显示&lt;noscript&gt; 内容由浏览器决定。这意味着无论客户端是否决定显示它,您仍将处理和下载“php 处理脚本”的结果。

确实,您必须有一个指向源页面的 iframe,因此只有在客户端决定应该显示 &lt;noscript&gt; 块时才会加载它。

<noscript>
    <iframe src="yourserverpage"></iframe>
</noscript>

请确认 google bot 会抓取 iframe。我想要 iframe 作为加载页面的一部分被索引,而不是单独的页面

遗憾的是这是不可能的。

您的服务器上仍然可以有一个显示内容的页面,但它会在其正确的地址被编入索引,而不是作为您嵌入 iframe 的页面的一部分。例如,假设这是“PageA”的 HTML "

<noscript>
    <iframe src="PageB"></iframe>
</noscript>

此 iframe 中的内容将在 PageB 中编入索引,而不是作为 PageA 的一部分。

在某些情况下,您可以使用规范元标记来解决此问题:

<link rel="canonical" href="PageA">

当放置在您的 HTML 页面的 &lt;head&gt; 中时,此标记会请求爬网程序将提供的替代地址下的内容编入索引。这通常在两个页面上出现相同内容时使用,但您希望其中一个成为搜索结果的主人。我不知道在您的上下文中使用它是否会被爬虫视为“黑帽”,因为上下文略有不同。

另一种方法!

如果您有大量库存,最好引入对结果进行分页的概念。然后,您可以拥有一个工作的非 JavaScript 页面,其中包含指向更多库存页面的链接。然后,您可以使用 JavaScript 拦截分页操作,并使用替代方法来获取结果,如果您认为它为访问您网站的人增加了价值。

【讨论】:

    【解决方案2】:

    生成页面时仍会调用 PHP 代码。您需要为指向不同页面的 iframe 提供 url,而不是在 iframe 中嵌入 HTML 以推迟执行。即使那样,我也不确定是否不会获取 URL。你必须试一试才能确定。使用 Firefox/Firebug 查看页面加载时是否正在向备用 url 发出请求。

    <noscript>
    <iframe src="/example.com/deferred-load.php">
    </iframe>
    </noscript>
    

    另外,Google 不会将 iframe 作为您网站的一部分编入索引是正确的。

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 2018-11-11
      • 2011-12-02
      • 1970-01-01
      • 2018-05-13
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多