首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

都9102年了,还需要用到 jQuery 吗?

在本文中,我将介绍 jQuery 的历史、优点、缺点以及为什么你仍要用它。 什么是jQuery?...jQuery 是开源的(任何人都可以贡献、修改代码或建议更新的功能),它在互联网上有一个非常大的用户社区【https://forum.jquery.com/】。 为什么开发人员仍然使用jQuery?...它有一些很好的功能,人们觉得有用。其中包括: jQuery 有一个可扩展的插件系统 - jQuery 有一个即插即用插件系统。你所需要做的就是下载插件并使用或自定义它们来满足你的需求。...增加了包大小 - 当被压缩时,其大小为 86.1 Kb 或 28 kb,jQuery 为你的网站增加了更多的大小,即使大多数情况下只需要其中一部分功能。...@keyframes 是一个用于动画内容的重要工具,用来定义要在舞台上应用的样式以及 animation 属性或其子属性,它被绑定到选择器,指定如何用关键帧样式及其应用的时机。

2.2K40

jQuery.data() 的实现方式

用name和value为对象附加数据     使用 jQuery.data() 为普通对象附加数据时,其本质是将一个 “cache” 附加到了对象上,并使用了一个特殊的属性名称。     ...而 “cache” 又是 “obj” 的一个属性,在 jQuery 1.6中,这个属性的名称是 “jQuery16”加上一个随机数(如下面提到的 “jQuery16018518865841457738”...为了深入了解其中的实现机制,我们有使用了一个循环来获取 “obj” 的属性,实际上是取出了在 “obj” 上附加的 “cache”对象。     ...DOM Element (当然,也可以用 jQuery 的选择器),然后在这个 DOM Element 上附加了一个属性,随后就从 DOM Element 上取出了附加的属性并输出。     ...我认为这应该是一种性能优化的方式,毕竟少一个引用的层次,存取速度应该会略快一些。 jQuery 中这刻意优化的地方非常多,在许多原本可以统一处理的对方都进行了特殊处理。

99670
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手把手教你用jQuery Mobile做相册

    【一、项目背景】 jQuery是当前很流行的一个JavaScript框架,使用类似于CSS的选择器,可以方便的操作HTML元素,拥有很好的可扩展性,拥有不少jQuery插件,也可对个方面进行插件开发。..."> 【三、项目实施】 1. body里面写入以下代码,(img标签的src属性导入自己喜欢的图片,设置图片的样式)。...data-rel="popup" 设置当前元素具有弹出窗的功能 data-position-to="window" 设置弹出窗出现在窗口中间位置 2. 给图片添图标。...="delete" 删除按钮 data-role="button" 表示这是一个按钮 提示:jQuery Mobile 中的按钮会自动获得样式,这增强了他们在移动设备上的交互性和可用性。...我们推荐您使用 data-role="button" 的 元素来创建页面之间的链接,而 或 元素用于表单提交。 【四、效果展示】 1.

    2.4K10

    通过代码重用攻击绕过现代XSS防御

    XSS已有近二十年的历史了,但它仍然是Web上最常见的漏洞之一。因此,已经发展了许多机制来减轻漏洞的影响。我经常会误以为这些机制可以作为针对XSS的保护。今天,我们将了解为什么情况并非如此。...我们只需要注入一个ID为“ expression”和一个名为“ data”的属性的HTML元素。内部数据将传递给eval。 我们试一试,是的!我们绕过了CSP! ?...JavaScript执行接收器小工具:类似于我们刚才看到的示例,可以独立运行,也可以作为链中的最后一步 让我们看另一个例子。我们将使用相同的应用程序,但现在让我们包括jQuery mobile。 的任何内容,幸运的是,jQuery Mobile有一个已知的脚本小工具可供我们使用。...可能不明显的是,当您创建弹出窗口时,库会将id属性写入HTML注释中。 ? jQuery中负责此工作的代码如下所示: ? 这是一个代码小工具,我们可以滥用它来运行JavaScript。

    2.7K10

    【深入浅出jQuery】源码浅析--整体架构

    ,那么为什么两个方法指向同一个函数实现,但是却实现不同的功能呢, // 阅读源码就能发现这归功于 this 的强大力量 // 如果传入两个或多个对象,所有对象的属性会被添加到第一个对象 target /...的实现和 jQuery.fn.extend 的实现共用了同一个方法,但是为什么能够实现不同的功能了,这就要归功于 Javascript 强大(怪异?)...hide(); 当选择了 ('div').eq(0) 之后使用 end() 可以回溯到上一步选中的 jQuery 对象 $('div'),其内部实现其实是依靠添加了 prevObject 这个属性: ?...// 给返回的新 jQuery 对象添加属性 prevObject // 所以也就是为什么通过 prevObject 能取到上一个合集的引用了 ret.prevObject = this;...然后想谈谈正则表达式,jQuery 当中用了大量的正则表达式,我觉得如果研读 jQuery ,正则水平一定能够大大提升,如果是个正则小白,我建议在阅读之前先去了解以下几点: 1)了解并尝试使用 Javascript

    66941

    3分钟搞定图片懒加载

    为什么需要懒加载 对于一个页面加载速度影响最大的因素之一就是图片资源,如果一个页面图片太多(比如某宝,某东等),整个页面的图片大小可以到达几百兆,即使在百兆宽带,全部下载的话,也需要上十秒的时间,这对于用户耐心的考验是巨大的...因此,通过html5自定义属性data-xxx先暂存src的值,然后在需要显示的时候,再将data-xxx的值重新赋值到img的src属性即可。...可以看出,10张图片是一次性全部加载完的。 下面改造成懒加载: 首先将页面上的图片的 src 属性设为空字符串,而图片的真实路径则设置在data-src属性中。...当向下滑动的时候,从Network面板可以看到,剩下的图片是一个个加载的。 可能有人疑问为什么第一次加载了4张,而不是3张?...因为我在判断是否在可视区内加了100 ,return bound.top <= clientHeight + 100; 可以提前加载一张图片。 注意:一定要设置图片的高度。

    2.5K20

    script新属性integrity与web安全,再谈xss

    当浏览器检测加载脚本签名与给定的签名不一致时,会拒绝执行该脚本。为什么CDN主推SRI功能,因为XSS,可以牵扯出DDoS攻击(分布式拒绝服务攻击),XSS比劫持肉鸡简单多了!...JavaScript可以发出HTTP(S)请求,实现网页内容异步加载,但它也能将浏览器变成攻击者的武器。...为了节省带宽及提高性能,它们会使用由第三方托管的JavaScript库。jQuery是Web上最流行的JavaScript库,截至2014年大约30%的网站都使用了它。...如果攻击者攻陷了这样一个托管JavaScript文件的服务器,并向文件中添加了DDoS代码,那么所有访问者都会成为DDoS攻击的一部分,这就是服务器劫持,如下图所示:这种攻击之所以有效是因为HTTP中缺少一种机制使网站能够禁止被篡改的脚本运行...这就是守门神:integrity=文件指纹密码散列可以唯一标识一个数据块,任何两个文件的密码散列均不相同。属性integrity提供了网站希望运行的脚本文件的密码散列。

    1.1K10

    JavaScript 构造函数

    我脑海中浮现的第一件事是“建筑师”。也许只是我个人的感觉,但第一次了解 JavaScript 构造函数时,这是我脑海中浮现的第一件事。...构造函数的功能包括创建一个新对象并为对象中已经存在的任何属性设置值。...由于函数关键字的工作方式与其他函数一样,因此可以使用它来定义构造函数。但是,构造函数遵循以下准则: 使用大写字母在构造函数名称中,以使其与其他函数区分开。 构造函数如何使用 this 关键字有所不同。...关于 JavaScript 构造函数的重要信息虽然有时使用构造函数可能很简单,但它也可能非常费力。以下是每个开发人员都应该知道的一些关于使用构造函数的基本信息。...使用基于参数的构造函数 构造函数可以扩展以接受参数。如果要开发灵活、响应灵活的代码,这是至关重要的。当从一个构造函数创建对象时,该对象将始终继承构造函数中声明的所有属性。

    19820

    2024全网最全面及最新且最为详细的网络安全技巧 七之 XSS漏洞典例分析POC以及 如何防御和修复(5)———— 作者:LJS

    Tui Editor使用了第二种方式,我在他代码中发现了一个默认的HTML sanitizer,在用户没有指定自己的sanitizer时将使用这个内置的sanitizer:https://github.com... 这里使用一个id为attributes的input元素劫持了原本form的attributes,el.attributes不再等于属性列表,自然关于移除白名单外属性的逻辑也就无从说起了。...在Tui Editor的单元测试中增加了这样一个case: 平平无奇,但我将其放到未修复的HTML sanitizer中竟然绕过了属性白名单,成功执行...而Tui Editor因为只考虑了双svg的Payload,所以可以使用它轻松绕过最新的补丁,构造一个无交互XSS。 那么我是否还能再找到一种绕过方式呢?...htmlPrefilter()中实现:jquery-src,其后再进行原生innerHTML的调用来加载到页面。

    10910

    JavaScript中的各种模块化规范

    为什么要模块化 在模块化这东西没出来之前,前端脚本引用大概是这样的: src="module1.js"> src="module2.js">的方案都出来了 CommonJS 这种方式通过一个叫做require的方法,同步加载依赖,然后返导出API供其它模块使用,一个模块可以通过exports或者module.exports...mymodule", ["dep1", "dep2"], function(d1, d2) { return someExportedValue; }); AMD 规范中,define 函数有一个公有属性...require.js 了 CMD表示不服 CMD是SeaJS 在推广过程中对模块定义的规范化产出 CMD 规范中定义了 define 函数有一个公有属性 define.cmd。...// 暴露公共方法 return test; })); ES6 modules: 你们都让开,我才是标准 ES6为JavaScript添加了一些语言结构,

    86090

    微服务架构之Spring Boot(三十三)

    自动配置在Spring的默认值之上添加了以下功能: 包含 ContentNegotiatingViewResolver 和 BeanNameViewResolver beans。...默认情况下,资源映射到 /** ,但您可以使用 spring.mvc.static-path-pattern 属性对其进行调整。...如果您的应用程序打包为jar,请不要使用 src/main/webapp 目录。虽然这个目录是一个通用的标准,它的工作原理只是战争的 包装,它是默默大多数构建工具忽略,如果你生成一个罐子。...以jQuery为例,添 加 "/webjars/jquery/jquery.min.js" 会产生 "/webjars/jquery/x.y.z/jquery.min.js" 。...使用(例如)JavaScript模块加载器动态加载资源时,不能重命名文件。这就是为什么其他策略也得到支持并可以合并的原因。

    1.5K20

    Web高性能动画及渲染原理(1)CSS动画和JS动画

    ,这也就不难理解为什么首屏渲染时transition不会生效了。...综上可知,animation是一种强制执行的动画,既对transition过渡动画失效的场景进行了补充实现,同时也增加了动画细节的可定制性(例如循环动画或往复动画的实现),但它的功能扩展仍然是针对单过程动画的...,后续的元素依次类推,就需要为每一个动画执行项的animation属性设置递增的delay值,这样的需求使用原生CSS既难编写也难维护,它通常需要借助预编译器才能够实现,但是如果在JS脚本中来完成相同的设定...使用Velocity.js实现动画 velocity.js是一个非常易用的轻量级动画库,它包含了jQuery中$.animate( )方法的全部功能,但是比jQuery更流畅。.../jquery.min.js"> src="./velocity.min.js"> src=".

    7.6K30

    《C++11》`decltype`详解、与`auto`比较及原理浅析

    C++11标准引入了两种新的类型推导关键字:decltype和auto。这两种关键字在简化代码和提高代码可读性方面发挥了重要作用,但它们的工作机制和应用场景有所不同。...decltype与auto的比较decltype和auto都可以用于类型推导,但它们在处理类型时有所不同。...decltype的工作原理decltype关键字的工作原理也基于C++的类型系统,但它的工作方式与auto有所不同。decltype会分析其参数的类型,然后生成该类型。...不过,decltype的类型推导规则比auto更复杂。它不仅会考虑参数的类型,还会考虑参数是如何在表达式中使用的。...总结decltype和auto都是C++11引入的用于类型推导的关键字。它们的工作方式和用途有所不同,但都可以大大简化代码。decltype主要用于查询表达式的类型,特别是在模板中推导返回类型。

    8800

    前端入门24-响应式布局(BootStrap)声明正文-响应式布局(BootStrap)

    反正,BootStrap 本质就就是一个框架,封装了一系列的属性样式、组件给开发者使用,开发者只要了解有哪些属性样式可以用、有哪些组件可以用、效果怎么样、怎么用就可以了,至于这些,就只能是一步步在实际开发中...目前的代码里,我们完全没有写过 CSS,只在 HTML 文档中,添加了 标签内容,就能够达到这样的页面效果了,所以,其实,BootStrap 已经封装好了一大堆属性样式,我们只要在标签上通过...那么,点击完按钮后,第一个 为什么会被展开了呢?...首先,需要对当前这个按钮添加 navbar-toggler 的 class,然后需要通过 data-target 指明控制展开的区域,这也是为什么第一个 中会有一个 id 属性,就是用来给这个按钮控制它的...我们再来看导航栏的一个效果,我再来分析下: ?

    3.6K20
    领券