YUI杂记

YUI杂记Y.Lang.isObject()Y.Lang.isArray()Y.Lang.isFunction()Y.Lang.type()Y.later的作用和settimeout类似,都是延迟执行方法参数:(when o fn data periodic)/***when:表示延迟的时间*o:执行的上下文*fn:要执行的方法,是在o这个对象

YUI杂记"

Y.Lang.isObject()
Y.Lang.isArray()
Y.Lang.isFunction()
Y.Lang.type()

Y.later的作用和settimeout类似,都是延迟执行方法

参数:( when  o  fn  data  periodic )

/**
 * when:表示延迟的时间
 * o:执行的上下文
 * fn:要执行的方法,是在o这个对象里的方法
 * data:传给fn的参数,可以是单个项,也可以是一个array
 * periodic:如果设置为true,那个该方法的执行如同setInterval,在一个间隔后连续执行
 */

使用Y.parallel来批量处理异步的方法调用

<!DOCTYPE html>
<html>
	<head>
		<title>Time</title>
	</head>
	<style type="text/css">
		* {
			font-family: Inconsolata, "Bitstream Vera Sans Mono", "Droid Sans Mono", "Courier New", monospace;
			margin: 0;
			padding: 0;
		}
		#main {
			margin: 100px;
		}
	</style>
	<body>
		<div id="main">
			<button>OK</button>
			<p></p>
		</div>
	</body>
	<script type="text/javascript" src="../../yui-min.js"></script>
	<script type="text/javascript">
		YUI().use('parallel', 'node', function(Y) {
			var stack = new Y.Parallel();
			var res = Y.one("#main p");

			Y.one('#main button').on('click', function(e) {
				e.preventDefault();

				res.append('<strong>Running begin:</strong><br></br>');

				//Y.later的用法示例

				// Y.later(1000, null, function(i){
				//  	res.append("<br>" +i);
				//  }, 100, true);

				// Y.later(1000, null, function(){
				// 	res.append("<br>" +100);
				// });
				// Y.later(1000, null, function(){
				// 	res.append("<br>" +100);
				// });
				// Y.later(2000, null, function(){
				// 	res.append("<br>" +100);
				// });
				// Y.later(3000, null, function(){
				// 	res.append("<br>" +100);
				// });

				//stack.add()的方法只是将add中的方法注册到stack中,要将其执行
				//然后才能调用stack.done,故而使用了立即执行()

				// for(var i = 1000; i <=5000; i=i+1000) {
				// 		stack.add(function() {
				// 			res.append(i + ' Callback fired<br>');
				// 		})();
				// }

				// stack.done(function() {
				// 	res.append('<br><strong>All Completed!</strong>');
				// });


				//在for循环中先将方法注册到stack中,然后Y.later每隔1秒调用一次注册的方法,
				//全部执行完之后,stack.done自动执行
				for(var i = 1000; i <=5000; i=i+1000) {
					Y.later(i, null, stack.add(function() {
						res.append(i + ' Callback fired<br>');
					}));
				}

				stack.done(function() {
					res.append('<br><strong>All Completed!</strong>');
				});
			});
		});
	</script>
</html>

今天的文章YUI杂记分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27819.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注