什么是jQuery timer?
答:一个使用Jquery扩展而成的定时器类的插件。
为什么要这样的插件?
答: 更加灵活方便使用javascript定时器。
以下是插件代码,根据一款timer定时器类实现,只不过这里直接使用jQuery集成。
源文件:jquery.timer.dev.js
代码:
/**
* @package jQuery Timer
* @desc this plugin for jQuery of Timer as based from jQuery ui plugin frame
* @date 2013-5-10
* @version 1.0.1
* @author viticm
*/
( function( $, undefined )
{
$.timer = $.timer || {};
$.timer.console = $.timer.console || {}; // debug
if( 'undefined' == typeof console ) // if not found client object then use default output function
{
$.extend( $.timer.console,
{
error: function( cErrorStr )
{
alert( '[ERROR] '+cErrorStr );
return;
},
warn: function( cWarningStr )
{
alert( '[WARNING] '+cWarningStr );
},
log: function( cLogStr )
{
alert( '[LOG] '+cLogStr );
}
});
}
else
{
$.timer.console = console; // notice: this( console ) object can't extend
}
$.extend( $.timer,
{
version: '1.0.1',
options:
{
iTimerDelay: 1000,
iRepeatCount: 10,
iCurrentCount: 0,
bRunning: false,
cRepeatType: null == this.iRePeatCount || 1 > this.iRepeatCount ? 'interval' : 'timeout',
bCompleted: false,
timerEventRun: { bBubbles: false, bCancleable: false },
timerEventComplete: { bBubbles: false, bCancleable: false },
funcListener: null,
bDebug: false,
name: '',
OBJ_StartDate: null,
userData: {},
},
iTimerId: 0,
OBJ_TimerEventRun: null,
OBJ_TimerEventComplete: null,
handler: {},
});
$.extend( $.timer,
{
init: function( options )
{
$.extend( this.options, this.options, options || {} );
this.OBJ_TimerEventRun = this.timerEvent.init( this.timerEventRun );
this.OBJ_TimerEventComplete = this.timerEvent.init( this.timerEventComplete );
var Arr_ListenerMap = []; //hanler listener map
Arr_ListenerMap[ this.timerEvent.TIMER ] = [];
Arr_ListenerMap[ this.timerEvent.TIMER_COMPLETE ] = [];
this.handler = Arr_ListenerMap;
return $.extend( true, {}, this );
},
});
$.extend( $.timer,
{
timerEvent:
{
cType: 'timer',
bBubbles: false,
bCancleable: false,
init: function( timerEventSet )
{
var timerEventSet = 'undefined' === typeof timerEventSet ? {} : timerEventSet;
this.cType = undefined === timerEventSet.cType ? this.cType : timerEventSet.cType;
this.bBubbles = timerEventSet || undefined === timerEventSet.bBubbles ? this.bBubbles : timerEventSet.bBubbles;
this.bCancleable = undefined === timerEventSet.bCancleable ? this.bCancleable : timerEventSet.bCancleable;
return this;
},
TIMER: 'timer',
TIMER_COMPLETE: 'timerComplete',
toString: function()
{
return '[timerEvent type='+this.cType
+' bubbles='+this.bBubbles
+' cancleable='+this.bCancleable
+']';
}
}
});
// listeners
$.extend( $.timer,
{
addEventListener: function( cType, funcListener, bUseCapture )
{
if( this.timerEvent.TIMER == cType || this.timerEvent.TIMER_COMPLETE == cType )
{
if( !funcListener && true === this.options.bDebug )
$.timer.console.warn( 'not found listener function! timer name: ' + this.options.name );
if( true === bUseCapture )
{
this.handler[ cType ].splice( 0, 0
[2]js判断背景图片是否加载成功
来源: 互联网 发布时间: 2013-11-22
非背景图片可以用img的onerror 来判断,但是背景图片呢,刚无意中发现一个方法,目测可行,但不确定是否始终可行。
var img=new Image();
img.src="图片地址";
if(img.width==0){//表示图片加载失败了}
else{//成功了}
这方法一般情况下可行,但是为测试过图片很大或者加载速度很慢的时候是否可行。
作者:cn_bboy 发表于2013-5-29 11:04:52 原文链接
阅读:0 评论:0 查看评论
[3]浅析Post和Get
来源: 互联网 发布时间: 2013-11-22
关于Get和Post的区别,一直比较模糊,因为网上所说的也都是各有不同,甚至相悖,为此结合查询和一个简单的例子来说明一下。
网络答案
网上解释的区别为以下几点:
Post主要用于对服务器数据的修改,Get主要用于对服务器数据的查询。
GET使用URL或Cookie传参。而POST将数据放在BODY中。
GET的URL会有长度上的限制,则POST的数据则可以非常大。
POST比GET安全,因为数据在地址栏上不可见。发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
二者对缓存默认设置不同。
实例
请求的页非常简单,只有name和password两个参数,结合Chrome的开发工具,我们来看一下基本的区别。
请求页页面
Get下
body
截获的数据
Post下
body
截获的数据
对比
通过对比,可以发现Get将输入域数据附加到URL传输,而Post放到了body中;Get数据以Parameters的方式获取,Post以Form Data的方式获取,包括对缓存的设置区别,包括Get方式有URL长度限制,使用非URL传输的Post数据封装的更安全,这是显而易见的区别。
但是我们需要确认,这是浏览器的规定,还是HTML的规定,还是真正的HTTP协议的规定。简单测试就可以发现:
不同IE版本对URL长度规定的不同
不用版本的IIS对Post传输的数据大小不同
很显然他们使用的都是HTTP1.1,但对数据限制却不同,是因为数据长度并非是HTTP协议规定,确切说这不属于Post和Get方法的区别,而是软件、系统和环境的设置的不同,这一点还是有必要区分一下。
总结
一般在应用情况下,我们知道这几个表现出来的区别就够,但是如果想深究区别和不同,还是很有必要仔细研究一下各个协议的说明文档。
作者:lidaasky 发表于2013-5-29 11:00:43 原文链接
阅读:6 评论:0 查看评论