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

标签 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 中的内容,对吗?我有哪些机会可以抓取此内容?

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

最佳答案

@Evgeniy 的回答是搜索引擎不适合做的事情的最佳解决方案,即拖网动态页面。

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

关于javascript - 异步加载 HTML 的搜索引擎行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22500986/

相关文章:

javascript - 由于 AngularJS 的 IE 缓存,我必须单击两次才能添加/删除项目

javascript - 如何设置相对于其自高度度而非宽度的响应式比例图像

javascript - Mocha 因 "timeout exceeded"失败

jQuery 表单插件在 FireFox 中响应不佳

javascript - 在 Foundation 6 中创建在滚动条上显示当前位置的导航

html - td 元素中垂直对齐的奇怪行为

javascript - 调整窗口大小时,Bootstrap Modal 被隐藏

javascript - Laravel 5 Eloquent 对象和 ajax

javascript - 一页上有多个 Ajax 添加到购物车表单

jquery - jqDnR 插件不适用于 jQuery 1.4