我一直在閱讀有關使AJAX密集型應用程序更多的搜索引擎友好: https://developers.google.com/webmasters/ajax-crawling/docs/getting-started創建抓取跨域的JavaScript控件
我有交付的解決方案,最近在很大程度上依賴於JavaScript的控件跨域。整合此解決方案的網站將在其網站中包含一段JavaScript。例如:
<script type="text/javascript">
var _lw = _lw || {};
_lw._setAccount = ' 00000000-0000-0000-0000-000000000000' ;
_lw._widgetType = '_widgetName';
_lw._options = {};
(function() {
var scriptsrc = document.createElement('script');
scriptsrc.type = 'text/javascript';
scriptsrc.async = true;
scriptsrc.src = 'http://hostname/Application/js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(scriptsrc, s);
})();
</script>]
<div id="widget-container"></div>
此請求附加到一個jQuery包裝以及小部件將使用的相關應用程序URL。請注意,這段JavaScript代碼的來源是一個簡單的asp.net的MVC內容由此相關內容輸出:
[HttpGet]
[ActionName("js")]
public ContentResult RenderJavascript()
{
// java script urls & jquery wrapper are output
}
現在必要的URL是可用的,剛附加踢和火災jQuery的包裝使用帳戶信息,窗口小部件類型和任何相關選項向服務器發出請求。 ASP.net MVC
只是充當內容生成器,它返回JSONP
結果,其中生成的內容被附加到網站內容容器中。
function loadWidget() {
var jsonpUrl = _opts._widgetUrl + _lw._setAccount;
jQuery.getJSON(jsonpUrl, _lw._options, function (data) {
jQuery('#widget-container').html(data.html);
});
}
我讀到的越多,我就讀這個過程更多的搜索引擎友好我不知道從哪裏開始。生成所需的HTML快照很容易,但是,我該如何向google表明應該抓取鏈接?
另一個看起來有點有希望的選擇是關於如何處理沒有散列碎片的頁面。這可以通過添加使用JavaScript小部件的元標記來實現。
<meta name="fragment" content="!">
但是,現在的問題在於,這是一個跨域請求,並且不會在任何地方引導。
除非你的小部件可以進行位置哈希變化,我不認爲這是可能的。請參閱:https://developers.google.com/webmasters/ajax-crawling/docs/getting-started –