异步加载的HTML的搜索引擎行为

时间:2014-03-19 09:14:38

标签: javascript jquery html web-crawler googlebot

对于一个项目,我需要使用XMLHttpRequest或jQuery异步加载HTML内容。

具体而言,我发出请求并将HTML响应加载到div容器中。

(这只是一些示例代码:)

<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
    } 
    xmlhttp.open("GET","testFile.php",true);
    xmlhttp.send();
}

</script>
</head>
<body onLoad="loadXMLDoc()">

<div id="myDiv" style=""></div>

</body>
</html>

现在问题: Afaik搜索引擎看不到#myDiv中的内容,对不对?我有什么机会可以抓取这些内容?

附录:请求也可能是跨域的!

2 个答案:

答案 0 :(得分:1)

Goog问题!

据我所知,Ajax Crawling可以帮到你。但需要在服务器和客户端进行严格的更新。

答案 1 :(得分:1)

@ Evgeniy的答案是搜索引擎不能设计的最佳解决方案,即拖网动态页面。

您应该向您的利益相关者说明内容是否实际需要动态加载,还是只需要动态显示/隐藏。如果是后者,则可以在原始标记中包含所有内容,然后使用css display:none或jQuery toggle(同样的事情)显示/隐藏。如果你的内容像照片或视频一样带宽很大,这可能是不行的,但如果它只是文本,那么文本便宜。预加载和显示/隐藏将让搜索引擎搜索内容并为您节省大量麻烦。