(javascript/else/noscript iframe)以减少服务器处理?
在我的网站上,我提供零售库存目录。我想将数据处理和呈现清单的负担放在客户端浏览器上,以减少服务器端处理和带宽。我还希望内容是机器人爬行 我是这样想象的,但我想知道是否有更好的解决方案: 1:如果启用了javascript,则处理数据客户端 2:如果未启用javascript,则处理数据服务器端:(javascript/else/noscript iframe)以减少服务器处理?,javascript,html,iframe,noscript,inventory,Javascript,Html,Iframe,Noscript,Inventory,在我的网站上,我提供零售库存目录。我想将数据处理和呈现清单的负担放在客户端浏览器上,以减少服务器端处理和带宽。我还希望内容是机器人爬行 我是这样想象的,但我想知道是否有更好的解决方案: 1:如果启用了javascript,则处理数据客户端 2:如果未启用javascript,则处理数据服务器端: <noscript> <iframe> php processing script </iframe> </noscript> php处理脚本 另外
<noscript>
<iframe>
php processing script
</iframe>
</noscript>
php处理脚本
另外,请确认如果启用了Javascript,将不会加载iframe。如果浏览器仍然处理它,那么这就违背了我的目标
最后,请确认谷歌机器人将抓取iframe。我希望iframe作为加载页面的一部分而不是单独的页面进行索引。iframe是从一个完全独立的域加载的,所以我担心google可能根本不会为它编制索引
谢谢,
Skibulk生成页面时仍将调用PHP代码。为了延迟执行,您需要为iframe提供指向不同页面的url,而不是将HTML嵌入iframe中。即使这样,我也不确定URL是否会被提取。你得试试看。使用Firefox/Firebug查看页面加载到备用url时是否发出请求
<noscript>
<iframe src="/example.com/deferred-load.php">
</iframe>
</noscript>
另外,你也可以说谷歌不会将iframe作为你网站的一部分进行索引
请确认如果启用了Javascript,将不会加载iframe
浏览器决定是否显示
内容。这意味着您仍将处理和下载“php处理脚本”的结果,无论客户端是否决定显示它
实际上,您必须有一个指向源页面的iframe,因此只有当客户端决定应该显示
块时,才会加载它
<noscript>
<iframe src="yourserverpage"></iframe>
</noscript>
请确认谷歌机器人将抓取iframe。我想要这个
iframe作为加载页面的一部分而不是单独的页面进行索引
遗憾的是,这是不可能的
您的服务器上仍然可以有一个显示内容的页面,但它将在其正确的地址编制索引,而不是作为您嵌入iframe的页面的一部分。例如,假设这是“PageA”的HTML
此iframe内的内容将在PageB处编制索引,而不是作为PageA的一部分
在某些情况下,您可以通过使用规范元标记来修复此问题:
<link rel="canonical" href="PageA">
当放置在HTML页面的
中时,此标记请求爬虫在提供的替代地址下对内容进行索引。当两个页面上出现相同的内容,但您希望其中一个成为搜索结果的主控内容时,通常使用此选项。我不知道在你的上下文中使用它是否会被爬虫视为“黑帽子”,因为上下文是微妙的不同
另一种方法
如果您有大量的库存,那么最好引入分页结果的概念。然后,您就可以拥有一个工作的非JavaScript页面,其中包含指向更多库存页面的链接。然后,您可以使用JavaScript拦截分页操作,并使用另一种方法获得结果,如果您认为这会为访问您网站的用户增加价值。您在这里谈论的数据量是多少?如果你在每次页面加载时都向客户端发送50兆字节的产品数据,那么你所做的只是让你的用户恼火,并大大增加了你的带宽账单。不,数据块很小,通常只是mysql查询的搜索结果集。这是对真实情况的抽象。我将实际成为romote域,为数百家商店提供库存搜索服务。这可能会导致我试图削减的服务器端处理量过多。
<link rel="canonical" href="PageA">