Qual é a diferença entre jQuery versão 1, versão 2 e versão 3? [fechadas]

114

Recentemente, encontrei um webchart.jsdesign de página usando jQuery versão 2 e estou usando jQuery versão 1.

Para que o código funcione, use agora a versão mais recente, então verifiquei o suporte ao núcleo do jQuery e eles lançaram o jQuery 3.

Estou pensando em usar a versão 3 agora, mas estou procurando se a versão 3 tem problemas de compatibilidade, que só pode ser usado em dispositivos específicos.

zero8
fonte

Respostas:

249

Versões Principais

Versão 1.0: Primeira versão estável.
Versão 2.0: Caiu 6-8 IE apoio para melhorias de desempenho e redução no tamanho do ficheiro
Versão 3.0: promessas / A + apoio para Deferreds, $.ajaxe $.when, .data()compatível com HTML5

Todas versões

+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| Version Number |    Release Date    |       Latest Update        | Size Prod (KB) |                                   Additional Notes                                    |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+
| 1.0            | August 26, 2006    |                            |                | First stable release                                                                  |
| 1.1            | January 14, 2007   |                            |                |                                                                                       |
| 1.2            | September 10, 2007 | 1.2.6                      | 54             |                                                                                       |
| 1.3            | January 14, 2009   | 1.3.2                      | 55.9           | Sizzle Selector Engine introduced into core                                           |
| 1.4            | January 14, 2010   | 1.4.4                      | 76             |                                                                                       |
| 1.5            | January 31, 2011   | 1.5.2                      | 83             | Deferred callback management, ajax module rewrite                                     |
| 1.6            | May 3, 2011        | 1.6.4                      | 89             | Significant performance improvements to the attr() and val() functions                |
| 1.7            | November 3, 2011   | 1.7.2 (March 21, 2012)     | 92             | New Event APIs: .on() and .off(), while the old APIs are still supported.             |
| 1.8            | August 9, 2012     | 1.8.3 (November 13, 2012)  | 91.4           | Sizzle Selector Engine rewritten, improved animations and $(html, props) flexibility. |
| 1.9            | January 15, 2013   | 1.9.1 (February 4, 2013)   | 90             | Removal of deprecated interfaces and code cleanup                                     |
| 1.10           | May 24, 2013       | 1.10.2 (July 3, 2013)      | 91             | Incorporated bug fixes and differences reported from both the 1.9 and 2.0 beta cycles |
| 1.11           | January 24, 2014   | 1.11.3 (April 28, 2015)    | 95.9           |                                                                                       |
| 1.12           | January 8, 2016    | 1.12.4 (May 20, 2016)      | 95             |                                                                                       |
| 2.0            | April 18, 2013     | 2.0.3 (July 3, 2013)       | 81.1           | Dropped IE 68 support for performance improvements and reduction in filesize         |
| 2.1            | January 24, 2014   | 2.1.4 (April 28, 2015)     | 82.4           |                                                                                       |
| 2.2            | January 8, 2016    | 2.2.4 (May 20, 2016)       | 85.6           |                                                                                       |
| 3.0            | June 9, 2016       | 3.0.0 (June 9, 2016)       | 86.3           | Promises/A+ support for Deferreds, $.ajax and $.when, .data() HTML5-compatible        |
| 3.1            | July 7, 2016       | 3.1.1 (September 23, 2016) | 86.3           | jQuery.readyException added, ready handler errors are now not silenced                |
| 3.2            | March 16, 2017     | 3.2.1 (March 20, 2017)     | 84.6           | Hotfixes for regressions that were introduced in the 3.2.0                            |
| 3.3            | January 19, 2018   | 3.3.1 (January 20, 2018)   | 84.8           | Deprecation of old function calls, functions that accept classes now support them     |
|                |                    |                            |                | defined in an array                                                                   |
| 3.4            | April 10, 2019     | 3.4.1 (May 1, 2019)        | 86.1           | Performance improvements, nonce and nomodule support, fixes for radio elements, a     |
|                |                    |                            |                | minor security fix                                                                    |
| 3.5            | April 10, 2020     | 3.5.1 (May 4, 2020)        | 87.4           | Security fixes, .even() & .odd() methods, jQuery.trim deprecated                      |
+----------------+--------------------+----------------------------+----------------+---------------------------------------------------------------------------------------+

Referência: https://en.wikipedia.org/wiki/JQuery#Release_history

Explicação detalhada sobre as versões principais

A versão 1.0 foi a primeira versão estável do jQuery. Esta versão oferece suporte a navegadores da web mais antigos que nem mesmo são mais suportados por seus respectivos desenvolvedores. Se você espera uma grande quantidade de visitantes com navegadores da web mais antigos, esta é definitivamente a versão certa.

A versão 2.0 retirou o suporte para Internet Explorer 6-8 para aumentar o desempenho geral do jQuery e reduzir o tamanho do arquivo da biblioteca. Em palavras simples: a versão 2.0 é mais rápida e menor em tamanho de arquivo do que a versão 1.0, mas não suporta mais navegadores da web mais antigos. Como a Microsoft abandonou o suporte para Windows XP, é razoavelmente seguro presumir que seus visitantes usarão um navegador compatível com a versão 2.0, a menos que você saiba de antemão que não será o caso (consulte a versão 1.0).

Com o lançamento da versão 3.0, ambas as versões 1.11.1 e 2.1.1 serão atualizadas para o jQuery Compat 3.0 e jQuery 3.0. O jQuery Compat 3.0 ainda oferecerá suporte a navegadores mais antigos, como o Internet Explorer 8, enquanto a versão regular 3.0 oferecerá suporte apenas a navegadores permanentes (as versões atual e anterior de um navegador específico).

Com o lançamento da versão 3.0, não há razão para manter a versão 1.0 ou 2.0. Algumas notas do blog oficial da jQuery:

  • Se você precisar de suporte para a mais ampla variedade de navegadores, incluindo IE8, Opera 12, Safari 5 e semelhantes, use o pacote jQuery-Compat 3.0.0. Recomendamos essa versão para a maioria dos sites, pois oferece a melhor compatibilidade para todos os visitantes do site.
  • Se o seu site for construído apenas para navegadores de ponta perenes ou se for um aplicativo baseado em HTML contido em um webview (por exemplo, PhoneGap ou Cordova) onde você sabe quais motores de navegador estão em uso, vá para o pacote jQuery 3.0.0 .
  • Até que anunciemos o contrário, ambos os pacotes conterão as mesmas APIs públicas em versões principais e secundárias numeradas de forma correspondente. Isso deve tornar mais fácil para os desenvolvedores alternar entre os dois e ter compatibilidade máxima com plug-ins jQuery de terceiros.

Referência: https://blog.jquery.com/2014/10/29/jquery-3-0-the-next-generations/

icecub
fonte
6
Nota para usuários ASP.NET 4.0: jQuery 3.x interrompe o postback. jquery.com/upgrade-guide/3.0/…
Jared Thirsk
2
Esta resposta é realmente precisa? Pelo que eu aprendi, o jQuery Compat 3.0 nem está disponível em mais de uma versão alfa.
HischT
2
As referências @HischT são fornecidas com a resposta. A parte da qual você está falando foi copiada até mesmo um pouco do post do blog do próprio jQuery sobre isso. Não sei o quão preciso você quer que seja, mas posso garantir que não ficará melhor do que ter a fonte como referência. Além disso, observe a data desta resposta. Isso foi há mais de 2 anos. Eu faço o meu melhor para manter isso atualizado com informações relevantes sobre novos lançamentos, mas é isso. Se achar que podem ser feitas melhorias, edite a resposta e coloque-a em revisão por mim ou pela comunidade.
icecub
2
@icecub Por favor, note que meu comentário foi formulado como uma pergunta e não como um fato verdadeiro, porque não estou 100% certo sobre isso. Eu apenas tentei baixar ou mesmo encontrar qualquer informação sobre o jQuery Compat 3 e não consigo encontrar mais nenhuma informação do que aquele post de blog ao qual você está se referindo, e uma versão alfa adicional dele. Para mim, parece que eles abandonaram o jQuery Compat 3 pouco antes do lançamento. Se alguém puder provar que estou errado, ficarei muito feliz, pois adoraria usar o jQuery Compat 3 em meu projeto.
HischT
6
O Jquery-compat foi cancelado antes do lançamento no início de 2016, depois que a MS abandonou o suporte para IE8-10. blog.jquery.com/2016/01/14/jquery-3-0-beta-released
Dan Is Fiddling By Firelight