javascript - 一个操作的多个获取请求
问题描述
我目前有一个 CRUD 提醒应用程序,并且有一个上下文菜单,其中包含编辑、删除等选项。上下文菜单上的按钮根据提醒 id 进行更新,并将 ids 传递给引导模式表单。
function toggleMenuOn(e) {
if ( menuState !== 1 ) {
menuState = 1;
menu.classList.add( contextMenuActive );
}
let reminder_id = e.target.id
let context_btn1 = document.getElementById("context_menu_btn1");
let reminder_pk = reminder_id.replace("reminder", "");
let reminder_url = "{% url 'update-reminder' 0 %}".replace(/0/, reminder_pk)
context_btn1.className = "update-reminder context-menu__link btn btn-light";
context_btn1.setAttribute('data-id', reminder_url);
$("#context_menu_btn1").modalForm({formURL: reminder_url});
}
但是,当我查看命令行时,我看到了许多一键单击的 GET 请求:
[22/Dec/2019 17:50:01] "GET /update_reminder/8/ HTTP/1.1" 200 4650
[22/Dec/2019 17:50:01] "GET /update_reminder/4/ HTTP/1.1" 200 4681
[22/Dec/2019 17:50:01] "GET /update_reminder/8/ HTTP/1.1" 200 4650
[22/Dec/2019 17:50:01] "GET /update_reminder/4/ HTTP/1.1" 200 4681
有趣的是,当第一次加载页面并单击提醒上的编辑时,会出现一个 GET 请求。但是当我再次单击它时,会出现 2 个 GET 请求,并带有交替链接,如上所示。在第三次编辑点击 3 GET 请求出现。我查看了检查元素中的网络选项卡并显示相同。这是一个问题,因为它会减慢页面速度,并且有时会返回不正确的表单 url。我对它发生的方式和原因非常迷茫,因为 modalForm 只被调用一次。
解决方案
modalForm
每次切换菜单时都会创建一个新菜单,因为您将其声明放在toggleMenuOn
. 相反,您应该声明一次(当应用程序加载时),请参阅他们的 README:
<script type="text/javascript">
$(document).ready(function() {
$(".create-book").modalForm({
formURL: "{% url 'create_book' %}"
});
});
</script>
推荐阅读
- php - 我不能在数据库表中放假
- excel - VBA,应用程序定义或对象错误,更改透视筛选器
- go - 在接口中具有复制方法的惯用方式
- json - Flutter - 未终止的字符串文字
- javascript - 部署到 Firebase 功能时出现“无效或意外的令牌”
- java - Android Studio 无法运行导入的项目(找不到运行“应用程序”默认活动时出错
- erd - 创建业务角色 多对多关系
- microsoft-graph-api - MS Graph API 向文件添加权限
- java - 将字符串中的浮点数与Java中的正则表达式匹配
- python - 在 Django 中通过 URL 传递 ObjectId 时,字符串索引必须是整数