搜索引擎的蜘蛛只识别href的一般超链接,而不识别JavaScript代码,遇到一般超链接就会爬进去,遇到JavaScript不会爬进去。即,搜索引擎抓不到AJAX动态加载的内容。
AJAX异步加载文章一般步骤
一、新建一个AJAX.ashx的一般处理程序
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace AJAX { /// <summary> /// AJAX 的摘要说明 /// </summary> public class AJAX : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; int id=int.Parse(context.Request["id"]); if (id==1){ context.Response.Write("蓝牙技术..."); }else if (id==2){ context.Response.Write("巴金 《家》..."); }else if (id==3){ context.Response.Write("百度百科词条..."); } } public bool IsReusable { get{return false;} } } }
二、新建一个Page.html静态页面
<!DOCTYPE html> <html> <head> <title></title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript"> function LoadArt(id) { $.post("AJAX.ashx", { "id": id }, function (data) { $("#p1").text(data); }); } </script> </head> <body> <p id="p1"></p> <a href="javascript:void(0)" onclick="LoadArt(1)">1</a> <a href="javascript:void(0)" onclick="LoadArt(2)">2</a> <a href="javascript:void(0)" onclick="LoadArt(3)">3</a> </body> </html>
上面的代码不利于SEO优化,蜘蛛不会爬进去收录AJAX页面,也就是读不到任何内容,因为,href是JS代码。
<a href="javascript:void(0)" onclick="LoadArt(1)">1</a>
利于SEO的AJAX异步加载
<!DOCTYPE html> <html> <head> <title></title> <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript"> function LoadArt(id) { $.post("AJAX.ashx", { "id": id }, function (data) { $("#p1").text(data); }); } </script> </head> <body> <p id="p1"></p> <a href="AJAX.ashx?id=1" onclick="LoadArt(1);return false;">1</a> <a href="AJAX.ashx?id=1" onclick="LoadArt(2);return false;">2</a> <a href="AJAX.ashx?id=1" onclick="LoadArt(3);return false;">3</a> </body> </html>
href是个一般的超链接,蜘蛛就会爬进去,有利于SEO。但点击标题,会弹出一个新页面,添加:return false; 即可。
很多网站都用的是这个技术,即实现了使用JS和AJAX,也可以让搜索引擎抓到动态加载的内容。
发表评论
评论列表(条)