写在前面
如果你不会原生js,只会用jquery,那么你必须懂得jquery如何做性能优化。下面我总结了一些常用的,希望对大家有些帮助。
使用最新的jQuery类库
使用合适的选择器
(1) 使用id来定位DOM元素是最高效的方式,如果不能直接用id找到你需要的元素,可以考虑用find()方法。
(2) 标签选择器的性能也是不错的,它是性能优化的第二选择,因为jQuery将直接调用本地方法document.getElementByTagName()来定位DOM元素。
(3) 对于类选择器,现代浏览器和IE9+ 支持本地方法document.getElementByClassName(),而对于老的浏览器如IE8 以及以前的版
继续阅读 »
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。
每个版本都会引入一些新功能。今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能----deferred对象。
这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax。为了实现它,jQuery的全部ajax代码都被改写了。但是,
它比较抽象,初学者很难掌握,网上的教程也不多。所以,我把自己的学习笔记整理出来了,希望对大家有用。
more
什么是deferred对象?
开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同
继续阅读 »
用sea.js的preload去加载bootstrap和jquery,会经常出现
$ is not defined
more
大概如下配置的:
seajs.config({
base: '/static/js/modules/',
alias: {
'jquery' : 'jquery.js',
'bootstrap' : 'bootstrap/js/bootstrap.min.js'
},
preload : ['jquery', 'bootstrap'],
charset : 'utf-8'
})
继续阅读 »
jQuery UI's widget factory makes it easy to build widgets that extend the functionality of existing widgets. Doing so allows you to build powerful widgets on top of an existing base, as well as make small tweaks to an existing widget's functionality.
继续阅读 »
How To Use the Widget Factory
To start, we'll create a progress bar that just lets us set the progress once. As we can see below, this is done by calling jQuery.widget() with two parameters: the name of the plugin to create, and an object literal containing functions to support our plugin. When our plugin gets called,
继续阅读 »
zTree -- jQuery 树插件
zTree 简介
zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。
zTree的简单使用过程
1、首先是导入 zTree的相关js库和css
继续阅读 »
禁用页面的右击菜单
JavaScript
$(function(){
$(document).on('contextmenu',function(e){
return false;
});
});
新窗口打开页面
``` JavaScript
$(function(){
//例子1:href="http://"的超链接将会在新窗口打开链接
$('a[href^="http://"]').attr('target','_blank');
//例子2:rel="external"的超链接将会在新窗
继续阅读 »
作为最流行的MVVM(Model-View-View-Model)框架之一,相信大部分前端对AngularJS都不会陌生,我也一样久仰大名。不得不说,AngularJS所带来的改变是巨大的,被称为未来浏览器的模式一点也不为过,尤其是思维上的转变。
作为一个常年挥舞着jQuery去指挥无穷无尽的DOM的前端,初次接触AngularJS是有困难的,许多先贤警告我们不要在AngularJS中使用jQuery,不是没有道理的。即使AngularJS中带有jQlite对象,也仅仅是为了弥补一些地方AngularJS的局限性。AngularJS操作UI的方式与jQuery有着极大区别,在深入学习之后,我渐渐的发现了这点。过去使用jQuery的
继续阅读 »
```
module.exports = function(config) {
var files = [];
files.push('newifi/@(jquery*|newifi).js');
files.push('index.html');
files.push('../../test/.coffee');
files.push('../../test/.js');
var otherFiles = [
'newifi//!(jquery*|newifi|angular*|bootstrap|echarts*).js',
'newifi//.cs
继续阅读 »
迭代器模式是指提供一种方法,顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即使不关心内部构造,也可以按顺序访问其中的每个元素。
jQuery中的迭代器
迭代器模式无非就是循环访问聚合对象中的各个元素。比如jQuery中的$.each函数,其中回调函数中的i为当前 索引,n为当前元素,代码如下
$.each([1, 2, 3], function(i, n) {
console.log('当前坐标:' + i);
console.log('当前值:' + n);
});
然而,作为一个合格的前端开发者,我们不应该只是会用,而
继续阅读 »