簡體   English   中英

jQuery比其他JavaScript庫有什么優勢?

[英]What advantages does jQuery have over other JavaScript libraries?

我試圖說服那些在我現在的組織中設定標准的人,我們應該使用jQuery而不是Prototype和/或YUI。 我可以用什么令人信服的優勢來說服他們?

jQuery的3個主要優點是:

  • 與其他javascript框架相比,它重量輕
  • 它有各種各樣的插件可用於各種特定需求
  • 設計師更容易學習jQuery,因為它使用熟悉的CSS語法。 jQuery是設計師的Javascript

我想說我使用JQuery的主要原因是:

  • 大型開發社區和許多插件。
  • 這是微軟的關注點,他們正在增加一些插件支持和調試功能。
  • 非常好的第三方庫文檔。
  • 輕巧。
  • 鏈接功能非常強大。

在我看來,曾經簡單地嘗試過Prototype,然后嘗試並喜歡jQuery:jQuery API感覺更清潔,深思熟慮。 jQuery的創建者/架構師John Resig非常了解他的東西,它在jQuery的設計中展示,以及他所參與的各種其他令人印象深刻的JavaScript項目。

查詢和可鏈接性的整個概念非常適合DOM操作,這似乎是人們使用JS庫的主要原因。 在線文檔太棒了。 表現似乎也很好。 鑒於它的功能,整個庫適合相對較小的包。 插件架構對於可擴展性也非常好。

我老實說沒有嘗試YUI,所以我不能對此發表評論。 我知道它總共是一個相當龐大的庫,但你可以選擇只下載/使用它的特定模塊。

這是你會發現的最精心設計的語言 - 它幾乎是直觀的。

想要一個元素的寬度?

$('#something').width();

想要抓住一個元素,隱藏它,改變它的背景顏色並將其淡入?

$('#something').hide().css('background', 'red').fadeIn();

如何為IE表條帶化(假設定義了hover類)?

$('table tr').hover(function() {
  $(this).addClass('hover');
});

像這樣的快速,無意識的工作真的有助於銷售jQuery。

這是一個比上面提供的更新的速度測試。 上次我運行它的時候,最好的是jQuery,Mootools,Prototype,最后是YUI。 注意我在Firefox 3中運行它並且瀏覽器之間的速度不同,所以請自己測試一下。

光滑速度測試

jQuery的一個優點是開發了大量插件的大型社區。

  1. 它非常小,特別是在縮小時,並且在核心庫中提供了很多。

  2. 它也很容易擴展,並擁有一個活躍的社區。

  3. 最后,它非常容易學習; 一旦掌握了核心概念,就可以立即開始編寫復雜的解決方案。

贊成的一個論點是:

人氣+可擴展性

1)如果有人需要用JavaScript做X,那可能是用jQuery完成的
2)如果已經做了很多,可能有一個插件,如果不是原生支持

如果它真的很獨特,有很多人可以在SO或其他地方回答你的問題。

您可以通過此鏈接了解有關jQuery的更多信息,使用它的原因以及它的優點。

根據經驗,每個都有自己的優點和缺點,在您的應用程序中具有非常特定的作用。 做出全球決定可能不是最合適的方法。 制定手頭的具體任務,分析績效,膨脹,經驗等,然后做出具體的決定/建議。

好...

首先,您應該考慮為什么您認為jQuery是好的,但您不知道用什么參數來說服另一個人。 也許你應該首先說服自己。 ;)

無論如何,jQuery只是另一個框架。 你應該用它最擅長的。 如果你只是為了基本的DOM處理而使用它,那就算了吧! 學習如何正確使用js,你會沒事的!

考慮這個HTML:

<body>
<div style="width: 400px; height: 400px; background-color: red">
<div style="width: 400px; height: 400px; background-color: red">
</div>

<script type="text/javascript">

function test1 (){
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

$(div).width("400px").height("400px").css("background-color", "red");
}    

function test2 (){
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

$(div).width("400px");
$(div).height("400px");
$(div).css("background-color", "red");
}

function test3 (){
document.body.innerHTML = ""

var div = document.createElement("div");

document.body.appendChild(div);

div.style.width = "400px";
div.style.height= "400px";
div.style.backgroundColor = "red";
}

function test4 (){
    document.body.innerHTML = ""

    var div = document.createElement("div");

    document.body.appendChild(div);

    div.setAttribute("style", "width: 400px; height: 400px; background-color: red");
}

</script>
</body>

將它放在hml文件中,並在<head>提供jquery

然后,打開firebug並運行以下代碼:console.profile(); TEST1(); console.profileEnd();

console.profile();
test2();
console.profileEnd();

console.profile();
test3();
console.profileEnd();

console.profile();
test4();
console.profileEnd();

看你自己的結果!

但是如果你想在DOM上做一些復雜的操作,需要你做幾個循環或者發現DOM上的元素符合某些標准,你可以考慮使用jQuery,因為它會為你實現這個過程。

無論如何,請記住,沒有比使用您保存在代碼中的引用來控制DOM更好的了。 它更快,更易讀。 谷歌“js最佳實踐”。

我使用jQuery來處理復雜的事情,它需要我很長時間才能實現,最終會得到類似jQuery代碼的東西。 在這種情況下,使用它是有道理的!

玩得開心!

我已經使用jQuery幾個月了,並且發現它是一種愉快的體驗。 該框架清晰簡潔,它有一個很棒的插件架構,並得到很好的支持,但框架是一個非常私人的東西,你應該嘗試一些通常不需要很長時間才能找到最適合你的那個。

不確定這對你是否重要但微軟最近在VS 2008的下次更新中宣布支持jQuery 這是博客文章

你可以聽到jQuery背后的John Resig,在最近的Boagworld播客上討論它的各種其他框架。 它可能會幫助你決定一個非常平衡的部分。

我是Prototype的人,但我使用了jQuery。 老實說,我不認為兩者之間可以作為“賣點”使用。 另一方面,YUI非常臃腫。 我永遠不會在任何商業級應用程序上使用它。

我發現這個頁面談到了這個確切的主題。

也許你不應該? 這完全取決於您正在構建的應用程序類型。 如果您正在構建GUI密集型應用程序,比如Yahoo! 郵件,那么也許你應該考慮使用YUI或Mootools而不是jquery。 就個人而言,我是一個巨大的jQuery粉絲,但它絕對是最好的添加一個交互的大多數靜態UI。 另一方面,如果你正在使用它,那么jquery更簡單,語法更好,並且它有很多動力。

它有一套很好的插件,編碼風格不引人注目,這意味着它不會太難更換。 對於名為jRails的Ruby on Rails助手,還有一個很好的替代品。

性能方面他們都非常接近: http//www.kenzomedia.com/speedtest/但是,MooTools,dojo,ext和Prototype在我的環境中都運行得更快。

我的問題是 - 你為什么要使用它? 是因為你更了解它嗎?

Jquery已經存在了幾年,所以像其他人一樣,它有一個很深的社區,很多插件和不錯的支持。 暫且不談的是它很容易學習。

http://visualjquery.com/1.1.2.html

如果您試圖從業務角度說服人們,微軟最近決定使用Visual Studio發布jQuery可能有助於建立一些額外的可信度。 然后,這可能會傷害你的事業,這取決於他們對微軟的看法。

你為什么不創建快速比較?

執行一項任務,例如“查找包含類foo圖像的所有div或表,並為每個div附加一個click事件,使它們擴展50%。” 或者與你正在做的事情更相關的事情。

然后使用jQuery,Prototype等進行編碼,並進行比較。 哪個更短? 更容易閱讀? 跑得快? (你可以在這里找到速度比較。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM