⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spy.js

📁 一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:按照需要PHP5.1以上和MySQL数据库支持。
💻 JS
字号:
/*	jQuery Plugin spy (leftlogic.com/info/articles/jquery_spy2)	(c) 2006 Remy Sharp (leftlogic.com)	$Id: spy.js 840 2008-12-17 17:31:24Z matt $*/var spyRunning = 1;$.fn.spy = function(settings) {	var spy = this;	spy.epoch = new Date(1970, 0, 1);	spy.last = '';	spy.parsing = 0;	spy.waitTimer = 0;	spy.json = null;		if (!settings.ajax) {		alert("An AJAX/AJAH URL must be set for the spy to work.");		return;	}		spy.attachHolder = function() {		// not mad on this, but the only way to parse HTML collections		if (o.method == 'html')			$('body').append('<div style="display: none!important;" id="_spyTmp"></div>');	}	// returns true for 'no dupe', and false for 'dupe found'	// latest = is latest ajax return value (raw)	// last = is previous ajax return value (raw)	// note that comparing latest and last if they're JSON objects	// always returns false, so you need to implement it manually.	spy.isDupe = function(latest, last) {		if ((last.constructor == Object) && (o.method == 'html'))			return (latest.html() == last.html());		else if (last.constructor == String)			return (latest == last);		else			return 0;	}		spy.parse = function(e, r) {		spy.parsing = 1; // flag to stop pull via ajax		if (o.method == 'html') {			$('div#_spyTmp').html(r); // add contents to hidden div		} else if (o.method == 'json') {			eval('spy.json = ' + r); // convert text to json		}				if ((o.method == 'json' && spy.json.constructor == Array) || o.method == 'html') {			if (spy.parseItem(e)) {				spy.waitTimer = window.setInterval(function() {					if (spyRunning) {						if (!spy.parseItem(e)) {							spy.parsing = 0;							clearInterval(spy.waitTimer);						}					}				}, o.pushTimeout);			} else {				spy.parsing = 0;			}		} else if (o.method == 'json') { // we just have 1			eval('spy.json = ' + r)			spy.addItem(e, spy.json);			spy.parsing = 0;		}	}		// returns true if there's more to parse	spy.parseItem = function(e) {		if (o.method == 'html') {			// note: pre jq-1.0 doesn't return the object			var i = $('div#_spyTmp').find('div:first').remove();			if (i.size() > 0) {				i.hide();				spy.addItem(e, i);			}					return ($('div#_spyTmp').find('div').size() != 0);		} else {			if (spy.json.length) {				var i = spy.json.shift();				spy.addItem(e, i);			}			return (spy.json.length != 0);		}	}		spy.addItem = function(e, i) {		if (! o.isDupe.call(this, i, spy.last)) {			spy.last = i; // note i is a pointer - so when it gets modified, so does spy.last			$('#' + e.id + ' > div:gt(' + (o.limit - 1) + ')').remove();			o.push.call(e, i);			$('#' + e.id + ' > div:first').fadeIn(o.fadeInSpeed);		}	}		spy.push = function(r) {		$('#' + this.id).prepend(r);	}		var o = {		limit: (settings.limit || 10),		ajax: settings.ajax,		timeout: (settings.timeout || 3000),		pushTimeout: (settings.pushTimeout || settings.timeout || 3000),		method: (settings.method || 'html').toLowerCase(),		push: (settings.push || spy.push),		fadeInSpeed: (settings.fadeInSpeed || 'slow'), // 1400 = crawl		customParameterName: settings.customParameterName,		customParameterValueCallback: settings.customParameterValueCallback,		isDupe: (settings.isDupe || spy.isDupe),	};	spy.attachHolder();	return this.each(function() {		var e = this;		var lr = ''; // last ajax return		var parameters = new Object;		spy.ajaxTimer = window.setInterval(function() {			if (spyRunning && (!spy.parsing)) {			    var customParameterValue = o.customParameterValueCallback.call();				parameters[o.customParameterName] = customParameterValue;				$.get(o.ajax, parameters, function(r) {					spy.parse(e, r);				});			}			}, o.timeout);	});};function pauseSpy() {	spyRunning = 0; return false;}function playSpy() {	spyRunning = 1; return false;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -