国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

asp.net的優化 服務器控件背后友好的Html和JS

2019-11-17 03:49:03
字體:
來源:轉載
供稿:網友
假設你需要從一個頁面轉向其他頁面,下面有很多種方式,你是如何選擇的呢?你能清晰的說明理由么?

        <%--鏈接的表現形式--%>
        <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仍然指向的要跳轉的頁面 --%>


知道了這些又有什么用呢?

用處很多,但我們今天只談論SEO

就目前的搜索引擎技術手段,JavaScript(當然也就包括了Ajax)、表單元素(如input)、Flash和Image都無法(或者很難)被讀取。“蜘蛛”傾向于讀取簡單的html格式的文本。所以,從SEO的角度出發:

1. 不要使用JavaScript或表單進行頁面跳轉鏈接,如果一個普通的<a></a>也能完成同樣的功能。一般來說,任何不能通過標準錨標識符<a></a>進入的導航,都不會被蜘蛛檢索到。如果本來就使用的客戶端元素,我們應該比較容易注意到這一點;但當使用經過封裝處理過后的服務器端控件時,我們就可能會大意了。

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生成的,所以你看不見我!";
    }


解析成Html后的源代碼部分:

        <div id="UpdatePanel1">
            <span id="lbl"></span>
            <input type="submit" name="Button1" value="Button" id="Submit1" />
        </div>


這是很好理解的,因為UpdatePanel一樣是通過頁面的JavaScript函數來生成頁面內容的。查看源代碼,我們能看到相關的JavaScript函數,但不能看到函數生成的內容。而搜索引擎的蜘蛛,它也是只看源代碼的。

3. 當我們需要使用彈出頁面時,通常的做法是:

<a href="#" onclick="window.open('popup.html','common','height=600,weight=800');">common popup</a>


根據我們上面的交代,這樣的寫法,對SEO而言,無疑也是不利的。所以我們應該使用下面的代碼,即保證了彈出窗口的效果,也是SEO友好的。而且即使客戶的瀏覽器不支持或者禁用掉JavaScript,頁面一樣能夠順利的跳轉。

<a href="popup.html" onclick="window.open(this.href,'seo','height=600,weight=800');return false;" target="_blank">seo popup</a>
<%--注意:這里的return false語句不能省略。--%>


4. 當我們希望使用一種特殊的字體(常常是欄目標題之類)的時候,我們經常使用一張漢字圖片來代替。這也是一個比較麻煩的事情,因為作為標題,其內容常常是相當重要的關鍵字,如果使用圖片,蜘蛛是也無法讀取的。一種可能的解決方案是sIFR,但這方面我并不是很熟;網上搜了一下,似乎還不能應用于漢字。

對于圖片,我們常用的SEO方法是注明title和alt,如

<img alt="asp.net搜索引擎優化" title="使用ASP.NET技術開發網站時應注意到的一些SEO技術" src="seo.gif" />


不過這也屬于“不可見的頁面元素”,具體效果如何也很難精確衡量。但有總比沒有強!

5. 其他一些注意事項:

5.1 將html標簽的語義和CSS結合起來,和《span》和《div》不同,《h1》意味著標題、《b》意味著強調、《ul》《li》意味著列表……,這些語義標簽能給搜索引擎更清晰的指示;

5.3 重要的內容放在html頁面(指源代碼,而不是瀏覽器顯示結果)的頂端

5.5 將大段的JavaScript放在頁面底部或者單獨的js文件中;

5.2 最好不要使用框架(frame)布局;

5.3 大量的VIEWSTATE可能會對“蜘蛛”造成干擾;

5.5 牢記:就目前的搜索引擎技術手段,JavaScript(當然也就包括了AJAX)、表單元素(如input)、Flash和Image都無法(或者很難)被讀取。

作者:自由飛 http://m.survivalescaperooms.com/freeflying/archive/2010/02/19/1669469.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三门峡市| 剑阁县| 新沂市| 静安区| 民丰县| 二连浩特市| 遂平县| 夏邑县| 平南县| 民和| 肃北| 萍乡市| 内丘县| 龙井市| 日喀则市| 宜昌市| 海安县| 腾冲县| 阜新| 伽师县| 香港 | 蓬莱市| 洪江市| 广昌县| 伊金霍洛旗| 新和县| 浦城县| 延安市| 荆门市| 和田县| 手游| 威宁| 财经| 游戏| 廊坊市| 常熟市| 普格县| 闽清县| 阳原县| 平乐县| 铜陵市|