js监听数据库文档介绍内容的简单介绍
更新:2022-11-17 20:31
本文目录一览:
- [JS每5秒监听DIV内容 如果有变动,就运行某函数](#JS每5秒监听DIV内容 如果有变动,就运行某函数)
- Vue.js中vm.$on有什么实际意义?怎么使用?文档里的监听又是什么意思呢?
- 怎样监听到数据库的数据变化
- 如何用js监听网页的各种操作
- 如何在javascript监听文本框内容的改变
- js监听页面元素变化
JS每5秒监听DIV内容 如果有变动,就运行某函数
首先,当页面渲染完成后,记录历史的值:
var historyVal = $('#jiance').html();
每隔5秒执行检测:
setInterval(function() {
notifyme();
}, 5000); // 5000表示5000毫秒,即每隔5秒执行一次
Vue.js中vm.$on有什么实际意义?怎么使用?文档里的监听又是什么意思呢?
// 创建vue实例。
var vm = new Vue()
// 创建事件监听 @params 监听的事件名 回调函数。
vm.$on('start', function (params) {
console.log(params + ',我让start 事件触发了');
})
// 主动触发事件,此时会触发监听的回调(我们打印的代码就会运行) @params 触发的事件名 传递的参数。
vm.$emit('start', '我是触发传递的参数')
Vue的$on
就和addEventListener
差不多,是创建一个事件监听。
$emit
就和自定义事件一样,你主动创建了一个事件,并且让这个事件触发了。
一般用来Vue非父子组件之间传递数据(Vue的bus)。
怎样监听到数据库的数据变化
在Android中经常会用到改变数据库内容后再去使用数据库更新的内容,很多人会重新去query一遍,但是这样的问题就是程序会特别占内存,而且有可能会漏关cursor而导致程序内存未释放等等。其实Android内部提供了一种ContentObserver
的东西来监听数据库内容的变化。
ContentObserver
的构造函数需要一个参数Handler
,因为ContentObserver
内部使用了一个实现Runnable
接口的内部类NotificationRunnable
,来实现数据库内容的变化。需要使用handler
去post消息。注册ContentObserver
的方法是:
getContentResolver().registerContentObserver(uri, notifyForDescendents, observer);
上面3个参数为:
uri
:Uri类型,是需要监听的数据库的uri。notifyForDescendents
:boolean,true
的话就会监听所有与此uri相关的uri。false
的话则是直接特殊的uri才会监听。一般都设置为true
。observer
:ContentObserver
,就是需要的contentobserver
。 初始化一个ContentObserver
对象,重载onChange(boolean )
,在这个方法里去操作数据库的使用,针对变化后的使用。
如何用js监听网页的各种操作
/* obj 等于要监听的对象,如果要监听整个网页文档用 document
** @event {String} 要监听的事件名
** @handle {Function} 发生事件后的处理函数
*/
obj.addEventListener('event', handle);
如何在javascript监听文本框内容的改变
- IE的用
onpropertychange
事件 - 其他浏览器用
oninput
下面用jQuery简单写一下:
$("input[type=text]").on('input', function(){
// 这里当文本框内容变化时,触发事件,执行程序
});
js监听页面元素变化
该接口用来观察节点变化,MutationObserver
是一个构造器,接收一个回调函数callback
用来处理节点变化时所做的操作。
var observe = new MutationObserver(mutationCallback);
observe.observe(dom, config); // 后面介绍config的配置
observe.disconnect();
var record = observe.takeRecords();
配置示例:
let config = {
attributes: true, // 目标节点的属性变化
childList: true, // 目标节点的子节点的新增和删除
characterData: true, // 如果目标节点为characterData节点时,也要观察该节点的文本内容是否发生变化
subtree: true, // 目标节点所有后代节点的attributes、childList、characterData变化
};
完整示例:
<div id="h">123123</div>
<script>
window.onload = function () {
// Firefox和Chrome早期版本中带有前缀
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
// 选择目标节点
var target = document.querySelector('#h');
// 创建观察者对象
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
console.log(mutation);
});
});
// 配置观察选项:
var config = { attributes: true, childList: true, characterData: true };
// 传入目标节点和观察选项
observer.observe(target, config);
// 随后,你还可以停止观察
// observer.disconnect();
document.getElementById('h').onclick = function () {
this.innerHTML = "888888";
}
}
</script>
原文链接: