執行個體:儘可能寫友好的Javascript代碼

來源:互聯網
上載者:User

在Search Engine的robot搜尋時,針對的type,text/html此類“文本”的友好度是最高的(現階段text/xml除外),而text/javascript此類的友好度不理想,如果robot還要判斷DHTML代碼的話,那這個複雜度也是較高,而且划不來,因此,在DHTML編程時,如果要提升代碼的友好度。採用的方法,較好的方法是“儘可能是把DHTML的代碼簡化成沒有HTML的代碼”。這句話如何理解?

e.g:

一個javascript menu。
方法一、採用常規的編程方法:
<script type="text/javascript">
var navi_menu = neverDHTMLmenu();
/* addItem method
* @ pid
* @ id
* @ text
* @ href
*/
navi_menu.addItem("0","1","home","http://www.never-online.net");
navi_menu.addItem("0","2","blog","http://blog.never-online.net");
navi_menu.addItem("0","3","music","http://www.never-online.net/music");
navi_menu.init("navigator_Container");
</script>

二、採用對Search Engine較友好的編程方法
<script type="text/javascript">
onload = function() {
var config = {
container: document.getElementById("navigator_Container");
// and more configuration code
}
var navi_menu = new neverCssDHTMLMenu(config);
navi_menu.init();
</script>

<div id="navigator_Container" class="navigator_menu">
<ul>
<li><a href="http://www.never-online.net">home</a></li>
<li><a href="http://blog.never-online.net">blog</a></li>
<li><a href="http://www.never-online.net/music">music</a></li>
<!-- more... -->
</ul>
<div>

從方法一和方法二來比較,方法一把一些HTML封裝到了neverDHTMLmenu()裡,但這樣做並沒有實際的好處,雖然我們依然可以把CSS給到這個類裡。
方法二中可以看到有很多好處,比如,可以將view與program分離,可以實現用戶端的MVC。換個角度說,可以提高開發效率。

可能有些朋友會問,除了menu,還有哪些程式可以按上述的方法分離呢?
上面也提到了,一般與頁面互動較多的,會產生大量的HTML的,會影響Search Engine的robot的,都可以採用這種方法,當然了,這些只是討論對Search Engine的友好度,所以,任何代碼都必須由實際情況而定。

也或者有朋友問,這樣為何會提高開發效率?
比如,美工做好模板後,(假設此美工會一些相關的HTML編寫)那麼按照xhtml標準,(如上例如示)
假設我要把原本的home改成Default page,那麼美工得和程式員溝通,說要改這個menu的字,溝通時間在開發中也會多了。因此,在開發進度上,這個時間要算進去的。假設要改模板了,那麼還得溝通。再或者假如原來用js產生的HTML是table做成的menu,要改版了,那麼這個程式還得改寫。不利於維護...

這個方法建議大家可以試試,意思主要就是JS負責業務實現,而視圖則仍然交由HTML來處理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.