惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
腾讯CDC
博客园 - Franky
S
SegmentFault 最新的问题
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
Y
Y Combinator Blog
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
I
InfoQ
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
B
Blog RSS Feed
博客园 - 叶小钗
博客园_首页
有赞技术团队
有赞技术团队
雷峰网
雷峰网
量子位
小众软件
小众软件
月光博客
月光博客
U
Unit 42
D
DataBreaches.Net

博客园 - 还没断气

最新发现google首页居然可以打游戏 邮件处理 window7常用帮助 google 给发布商客户的信 google昨天才走,今天就不能使用了 各种代码注入举例 Sql注入和Html注入 给开发人员的忠告 早晨一杯水拥有健康好身体 做一个懒人吧 简单一些 快乐一些 毕业三年决定你的命运 生命真的不重要吗? 你是否愿意每周最少工作80小时 (转) .NET 4中废弃的特性 VS2010中Parallel类实现并行计算 深度解析Windows Phone 7开发 .NET 4新特性:表、SEO及可扩展输出缓存 Windows Server 2008 R2上安装WSUS 3.0 SP2 谷歌发布.NET平台YouTube SDK - 还没断气 iPhone破解软件定制版blackra1n 提供下载
详解ASP.NET的SEO:服务器控件背后故事 - 还没断气 - 博客园
还没断气 · 2010-03-09 · via 博客园 - 还没断气


假设你需要从一个页面转向其他页面,下面有很多种方式,你是如何选择的呢?你能清晰的说明理由么? 第一篇:详解ASP.NET的SEO:RewritePath()方法

<%--链接的表现形式--%><%--链接的表现形式--%>
        
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default2.aspx">HyperLink</asp:HyperLink>
        
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl="~/Default2.aspx">LinkButton</asp:LinkButton>
        
        
<%--出于美观的考虑,很多网站都会用button来替换掉link--%>
        
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/Default2.aspx" />
        
        
<%--用图片做链接,也有两种选择方式--%>
        
<asp:ImageButton ID="ImageButton1" runat="server" PostBackUrl="~/Default2.aspx" ImageUrl="~/upup.gif" />
        
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default2.aspx" ImageUrl="~/upup.gif"></asp:HyperLink>  
如果你还有些迷茫,我建议你查看他们生成html之后的源代码。

<a id="HyperLink1" href="Default2.aspx">HyperLink</a>      
        
<%--HyperLink解析成Html之后对应的就是一个单纯的超链接,href指向了要跳转的页面 --%>
        
        
<a id="LinkButton1" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;LinkButton1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, true))">LinkButton</a>
        
<%--LinkButton1虽然也是一个锚标记,但实际上是利用的JavaScript进行的跳转--%>
        
        
<input type="submit" name="Button1" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, false))" id="Button1" />
        
<%--button被解析成type="submit"的input元素,同样通过JavaScript进行页面的跳转--%>
        
        
<input type="image" name="ImageButton1" id="ImageButton1" src="upup.gif" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ImageButton1&quot;, &quot;&quot;, false, &quot;&quot;, &quot;Default2.aspx&quot;, false, false))" style="border-width:0px;" />
        
<%--ImageButton被解析成type="image"的input元素,同样通过JavaScript进行页面的跳转--%>
        
        
<a id="HyperLink2" href="Default2.aspx"><img src="upup.gif" style="border-width:0px;" /></a>
        
<%--给HyperLink的ImageUrl属性赋值后,解析成Html之后对应的就是一个超链接中“夹”了一个img,但href仍然指向的要跳转的页面 --%>

<%--给HyperLink的ImageUrl属性赋值后,解析成Html之后对应的就是一个超链接中“夹”了一个img,但href仍然指向的要跳转的页面 --%>知道了这些又有什么用呢? 用处很多,但我们今天只谈论SEO。就目前的搜索引擎技术手段,JavaScript(当然也就包括了AJAX)、表单元素(如input)、Flash和Image都无法(或者很难)被读取。“蜘蛛”倾向于读取简单的html格式的文本。所以,从SEO的角度出发: 1. 不要使用JavaScript或表单进行页面跳转链接,如果一个普通的也能完成同样的功能。一般来说,任何不能通过标准锚标识符()进入的导航,都不会被蜘蛛检索到。如果本来就使用的客户端元素,我们应该比较容易注意到这一点;但当使用经过封装处理过后的服务器端控件时,我们就可能会大意了。 2. 注意UpdatePanel里没有文本内容的情况。我们可以做一个简单的测试:

<asp:ScriptManager ID="ScriptManager1" runat="server">
        
</asp:ScriptManager>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Label runat="server" ID="lbl" ></asp:Label>
                
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
            
</ContentTemplate>
        
</asp:UpdatePanel>

    protected void Button1_Click(object sender, EventArgs e)
    {
            this.lbl.Text = "我是UpdatePanel生成的,所以你看不见我!";
    }