javascript - 在 REST API 之后将 JavaScript 加载到 HTML
问题描述
我正在查看一个较旧的 html/jquery webapp,我需要对其进行更改。编写代码的原始方式是通过 Spring MVC。HTML 页面将调用 Servlet,然后将 HTML 返回给客户端/浏览器。这个“mypage.html”有几个加载的 JS 文件:
<script src="js/file1.js"></script>
<script src="js/file2.js"></script>
<script src="js/file3.js"></script>
<script src="js/file4.js"></script>
所以当页面返回给浏览器时,HTML页面已经替换了值,然后JS添加了这些知道如何处理数据的脚本。
我替换它的方式,摆脱了 MVC 概念,并以不同的方式处理这个问题。在我的例子中,一个页面在 iFrame 中调用另一个 HTML。加载 iframe 后,它会进行 Ajax/REST 调用以从后端获取数据……因为我们这样做,所以加载了 4 个 javascript 文件,但没有他们需要的数据,因为它还没有,所以我认为它有点竞争条件。
所以,如果我做类似的事情......
$.ajax({
type : 'POST',
url : api_root + '/backed/api/mydataapi',
contentType : 'application/json',
dataType : 'json',
data : JSON.stringify({
queryid : queryId,
token : tokenX
}),
success : function(data) {
data1 = data.environment.data1;
data2 = data.environment.data2;
data3 = data.environment.data3;
<script src="js/file1.js"></script>
<script src="js/file2.js"></script>
<script src="js/file3.js"></script>
<script src="js/file4.js"></script>
}
我不认为它有效,但这就是我所追求的。如果有更好的方法可以将这些 JS 文件添加到页面,但只有在成功调用 REST 之后。我更像是一个在 Spring 中创建 RESTful API 的后端人员。我不是 javascript 的人,而且已经很多年没有了。我的雇主想在 ReactJS 中重做整个 UI,但我们还没有做到。与此同时,我必须处理这个半过程。
谢谢!
解决方案
你可以使用$.getScript()
.
如果加载顺序很重要,则需要稍微调整一下,因为请求是异步的,并且无法保证完成顺序
success : function(data) {
data1 = data.environment.data1;
data2 = data.environment.data2;
data3 = data.environment.data3;
$.getScript("js/file1.js");
$.getScript("js/file2.js");
....
}
推荐阅读
- excel - 将值从一个工作表上的一系列单元格发送到不同工作表上的一系列单元格
- amazon-web-services - 将电子邮件地址列表传递给 SNS 订阅端点
- php - PHP7 - 类静态变量不支持变量功能
- python - 从一列中查找与另一列的值相加的值 - Pandas
- svn - 树莓派 4,Subversion 校验和错误,LZ4 解压失败
- xamarin.forms - Xamarin Forms Android 项目 TargetFrameworkVersion 更新到 Xamarin Forms 5 后出现错误
- containers - Service Fabric - 在 IIS 上的容器中运行的 .net 4.7.2 应用程序可以访问结构配置设置吗?
- vba - 尝试使用 VBA 更新注册表项。错误:“注册表项中的根无效...”
- sql - 当有两行满足查询时,PostgreSQL 查询仅返回一行
- python - mysql上的表关系以计算新字段