随笔分类 - jquery
摘要:wijmo用户反馈了一个RadialGauge控件内存泄露的bug,采用chrome监控内存使用情况,发现明显的内存泄露,在前面的文章中我就发现了jQuery内存泄露的问题,这次再次发现此问题,自然就联想到以前发现的问题。由于jQuery会缓存一些数据在$.cache中,在调用remove方法的时候,会将这些数据清除掉。但是如果DOM元素不是采用jQuery删除的,就会发生内存泄露。用户场景是这样的:用户放了一个RadialGauge控件和Timer控件在UpdatePanel中,然后定时去刷新gauge。经过调试发现问题出在更新updatepanel内容的时候,MS AJAX framewo
阅读全文
摘要:在写chart widget的时候,我们使用了第三方的svg类库Raphael。结果客户给我们报了一个内存泄漏的bug,我们在测试的时候确实存在内存泄漏。经过测试发现了问题的原因。Raphael本身存在一些问题,还有就是在和jQuery使用的时候,我们也没有注意到一个问题。在创建jQuery对象的时候,jQuery会将jQuery缓存起来,放到jQuery.cache对象中。在调用jQuery的remove方法的时候,会清理掉jQuery的缓存。我们的问题就出在这里,在Raphael中,自己有remove方法来清楚Raphael创建的raphael对象和svg/vml元素。而在chart中,我
阅读全文
摘要:jQuery1.7在事件上做了改动,将事件绑定统一为on和off了,对以前的绑定方式继续支持. 但是在文档中没有提到的改动有以下两个:就是jQuery的die和undelegate方法,原来在取消命名空间绑定的时候不需要前面加点,但是在1.7中是需要前面加点。如下:1.7以前$(".selector").die("namespace");$(".selector").undelegate(".selector1", "namespace");1.7以后$(".selector"
阅读全文
摘要:在asp.net中的webcontrol开发的时候采用render方法来呈现控件。在javascript中,对于一些html代码的拼接大多数情况下采用字符串相加的方式来处理,这样做有以下弊端:1.可读性差,易出错,出错后不易发现。2.在javascript最小化的时候,长长的字符串不能最下化。于是在项目中我实现了累死render的方法来处理html代码的拼接。StringBuilder = function () { var self = this, strs = []; self.append = function (str) { strs.push(str); }; self.toStri
阅读全文
摘要:jquery 1.6已经发布了,在这个版本中最大的变化就是attr方法。原来我们通过这个方法取得jquery对象的属性。现在升级之后,原来采用attr方法的地方可能会出现问题。新的attr方法只会取得DOM元素上设置的属性。而不会取得DOM元素内部的属性。比如说:<input type="checkbox" checked="checked" />在1.6版中,调用方法$(":checkbox").attr("checked")方法将返回"checked"值,而不是true. 而之前
阅读全文
摘要:jQuery ui 内置了一组effects,包括:blind,bounce,clip,drop,explode,fade,fold,highlight,pulsate,puff,scale,size,shake,slide,transfer这些效果这些effect可以通过$("selector").effect(effect,[option],[speed],[callback]),或者是jQuery中包装的show和hide方法调用。其参数和effect调用相同。这里说明下参数的含义:effect:就是效果名称,可以是上面列举的effects之一。option:在不同的effect中包含不
阅读全文
摘要:在开发widget的时候,发现了一个jquery ui position的一个bug。这个bug是有关collision的。这个功能就是当当前的定位的元素超出屏幕屏幕的时候,会自动翻转定位。比如说定位在右边,而右边不够显示定位元素的时候,就定位到左边。下面我贴出代码来分析position的代码以及这个bug出现的位置。
阅读全文
摘要:这个widget是包含在wijmo 项目中的一个widget。目前此widget已经开源基于mit和gpl双协议,目前是beta版,可能存在bug。此项目的demo网站http://wijmo.com/Wijmo-Open/samples/[代码] // If have animation.200 if (o.animationOptions.animated && o.animationOptions.duration 0) {201 setTimeout($.proxy(function () {202 var o = self.options.animationOp
阅读全文
摘要:在编写widget的时候,一般我们需要绑定一些事件,最好将这些widget的绑定事件加上当前widget的命名空间。如果同一个jQuery对象,使用了两个widget,而两个widget都绑定了相同的事件名称,可能会出现问题。在销毁widget的时候,去除绑定事件也很方便,只需要unbind(”.namespace“)就可以了。在写jQuery的时候,因为jQuery对象是...
阅读全文
摘要:在开发progress bar 的widget的时候,有这样的一个需求,需要progress bar在运行的时候,可以按照一定的间隔值来滚动。而不是连续的滚动(比如滚动20px后,停顿下,在接着滚动20px)。由于在做widget的时候,我的animation是作用在progress 的那个div的。当时是这样写的progress.animate({width:value},{step:funct...
阅读全文
摘要:这里是一个简单的widget,在代码里也写了注释。 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--//此widget是将textbox进行修饰一下的。自身没有css,采用的是jqueryuicssframework的样式(function($){...
阅读全文
摘要:在上文中简单的介绍了下widget中的几个基本的方法,今天通过查资料算是明白了_create()和_init()方法的区别: 当widget被创建的时候,这两个方法都会被创建,而当页面再次调用widget方法的时候,则只执行_init方法,下面的代码将说明这些 代码Code highlighting produced by Actipro CodeHighlighter (freeware)h...
阅读全文
摘要:Jquery ui 提供了一些基本的widget,但是他提供了很好的机制来创建widget。在jquery css framework中包含了基本的css样式(视觉和感觉诸如颜色,字体大小,图标等),而在ui的css中,则需要定义构建widget结构的css,比如margin,padding,position等。在开发widget的时候也要尽量遵循这一原则,这样才能很好的利用jquery them...
阅读全文
摘要:Jquery ui css framework是jquery ui中的一个样式框架,可以利用jquery Theme roller 来生成自己想要的css样式效果。我们可以利用jquery ui的一些框架来开发出基于jquery ui css framework效果的插件来。 Jquery ui中两大核心的css文件是ui.core.css和ui.theme.css.这两个css样式贯穿整个基于...
阅读全文
浙公网安备 33010602011771号