javascript - 如何在后端数据发生更改时发出警报?
问题描述
我们有这样的简单 json
{
name: "Johnson"
}
我正在使用 ajax 显示如下名称
$.ajax({
url: /info.json,
success: function(data) {
$('<span><b>' + data.name + '</b></span>').append('body')
}
});
输出 Html 如下
<body>
<label> name </label>
<span><b>Johnson</b></span>
</body>
让我们假设我们现在得到的名字从“Johnson”变成了“Michael”。
名称更改后输出 Html 如下:
<body>
<label> name </label>
<span><b>Michael</b></span>
</body>
每当更改名称时,我们都希望显示弹出窗口。没有事件绑定到 HTML 文档,如何实现?
在开发人员工具中,使用中断选项我可以调试它。Javascript中还有其他方法可以实现相同的目标吗?
解决方案
我已经创建了列表项,每当我们添加项目时,我们都会得到弹出窗口。没有事件绑定到 DOM。我通过使用 Mutation 观察器实现了这一点。
<!DOCTYPE html>
<head>
</head>
<body>
<ol contenteditable oninput="">
<li>Enter the items</li>
</ol>
<script>
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
var list = document.querySelector('ol');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
var list_values = [].slice.call(list.children)
.map( function(node) { return node.innerHTML; })
.filter( function(s) {
if (s === '<br>') {
return false;
}
else {
return true;
}
});
alert(list_values);
}
});
});
observer.observe(list, {
attributes: true,
childList: true,
characterData: true
});
</script>
</body>
</html>
推荐阅读
- c# - 我可以使用 Ocelot 将 POST http 请求重新路由到 GET http 请求吗?
- wordpress - 如何在 wordpress 插件中部署反应图像?
- android - ViewGroup 将所有项目宽度设置为孩子要求的最大值
- java - logback 文件名格式,包括时间格式
- azure - 将 VM 规模集附加到应用程序网关的后端池
- spring - 有没有办法在非交互模式下运行 spring-shell 2.x
- assembly - 如何在 x86 程序集中按列显示数组
- python - 从 App Engine 下载源代码时出错
- c# - 如何在 asp.net Core 2.2 中的 ActionFilter 中传递动态参数和注入存储库?
- sql - 分析表中数据访问的频率