javascript - TurboLinks 如何显示响应 HTML?
问题描述
我目前正在研究 JavaScript TurboLinks 框架的基本内部功能。据我了解,onclick 事件被分配给所有锚标记,以便能够防止默认操作(整页重新加载)并通过 AJAX 加载链接内容。如果我在这里错了,请纠正我。
当 AJAX 回调将整个 HTML 文档作为字符串接收时,如何在不(重新)加载脚本和样式标签的情况下呈现它?
解决方案
脚本和样式只有在插入页面时才会(重新)加载和评估。当通过 AJAX 接收 HTML 时,Turbolinks 在幕后创建一个新的 HTML 文档,并将其内容设置为 HTML 响应。由于尚未渲染/插入,浏览器不会下载/评估任何脚本或样式。现在<head>
可以将新文档与当前文档进行比较,并且可以根据需要添加其他资产。
在特定的 Turbolinks 组件方面:
Visit
Snapshot
s从 AJAX 响应中创建s(参见 参考资料Visit#loadResponse
)Snapshot
s 在幕后创建 HTML 元素(参见Snapshot#fromHTMLString
SnapshotRenderer
s 处理合并<head>
和替换<body>
(SnapshotRenderer#mergeHead
和SnapshotRenderer#replaceBody
)
推荐阅读
- javascript - Nex.js 静态文件使用扩展名服务,无需下载
- docker - DBeaver 无法在 docker 中连接 mariadb 字符集出现一些错误
- excel - 如何将 Cloud Firestore 数据库导出为 excel/CSV 文件?
- r - R中的正则表达式失败
- javascript - 如何处理多个单选按钮及其值 - ReactJs
- json - JSON 值的原始顺序
- pandas - 显示具有多列的数据框
- ios - loginAndEnrollAccount()后如何获取访问令牌
- java - 如何在 Kotlin Android 中将字符串转换为 JSON 对象
- javascript - 更改 js webrtc 连接中的音频输入