JS 响应式编程

时间:2023-03-09 07:53:46
JS 响应式编程

JavaScript 响应式编程模式有点类似 WebForm 中的事件驱动模式(传相应的处理函数给委托,通过事件来触发来进行相关的处理),在 AngularJs 2.x 框架中,应用了 RxJS API,具体可以参考 AngularJs 官网。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript">
//定义功能类似C#中的委托的函数
function showId(func, param) {
if (func) {
func(param);
}
}
//显示标签的id(响应式编程方式,类似WebForm中的事件机制)
function myClick(t) {
showId(function (x) { alert(x); }, t);
}
</script>
</head>
<body>
<div onclick="myClick(this.id)" id="myDiv">Click to show id</div>
</body>
</html>

js中把字符串转成函数

<html>
<head>
<!--js中把字符串转成函数-->
<meta charset="utf-8" />
</head>
<body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
//函数体字符串
var jsStr = 'function checkLength(){ var v = $(this).val(); if(v.length > 3){ alert(v+": 长度大于 3"); } }';
jsStr += ' function checkType(){ var re = /[\+]/; var v = $(this).val(); if(re.test(v)){ alert(v+": 包含: \+"); } }';
//创建一个<script>标签
var scriptTag = document.createElement("script");
scriptTag.innerHTML = jsStr;
//把新建的<script>标签添加到<head>标签中
document.getElementsByTagName("head")[0].appendChild(scriptTag);
//为input标签绑定事件
$("#name").bind("blur", checkLength);
$("#name").bind("blur", checkType);
});
</script>
<input id="name" type="text" />
</body>
</html>

RxJS参考资源:

https://github.com/Reactive-Extensions/RxJS

http://www.introtorx.com/

http://bbs.****.net/topics/380250714

并发编程参考书籍:

《C#并发编程经典实例》 Stephen Cleary 著 相银初 译