添加js文件 --Service

Springboot 集成graalvm.js 执行JavaScript springboot中执行js 阅读详情
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';


declare const document: any;


@Injectable()
export class ScriptService {
  private loaded = false;
  private list: any = {};
  private emitter: Subject<boolean> = new Subject<boolean>();


  getChangeEmitter() {
    return this.emitter;
  }


  load(path: string[]) {
    if (this.loaded) return this;


    this.loaded = true;


    const promises: Promise<any>[] = [];


    path.forEach(script => promises.push(this.loadScript(script)));


    Promise.all(promises).then(res => {
      this.emitter.next(true);
    });


    return this;
  }


  loadScript(path: string): Promise<any> {
    return new Promise((resolve, reject) => {
      if (this.list[path] === true) {
        resolve(<any>{
          path: path,
          loaded: true,
          status: 'Loaded',
        });
        return;
      }


      this.list[path] = true;


      const node = document.createElement('script');
      node.type = 'text/javascript';
      node.src = path;
      node.charset = 'utf-8';
      if (node.readyState) {
        // IE
        node.onreadystatechange = () => {
          if (node.readyState === 'loaded' || node.readyState === 'complete') {
            node.onreadystatechange = null;
            resolve(<any>{
              path: path,
              loaded: true,
              status: 'Loaded',
            });
          }
        };
      } else {
        node.onload = () => {
          resolve(<any>{
            path: path,
            loaded: true,
            status: 'Loaded',
          });
        };
      }
      node.onerror = (error: any) =>
        resolve(<any>{
          path: path,
          loaded: false,
          status: 'Loaded',
        });
      document.getElementsByTagName('head')[0].appendChild(node);
    });
  }
}
如何通过JS实现清理网页缓存? 需要注意的是,直接清除浏览器缓存并不是一个常见的做法,因为缓存可以显著提高网站性能和加载速度。通常情况下,我们会在文件路径后添加版本号或时间戳来确保用户获取到最新的资源版本。这种方法在现代Web开发中被广泛采用。 阅读详情

相关推荐

[ScriptService] 特性的 Web 服务才能从脚本中调用

仅在类定义上有 [ScriptService] 特性的 Web 服务才能从脚本中调用。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 仅在类定义上有 [ScriptService] 特性的 Web 服务才能从脚本中调用。

在vue项目中使用百度地图api,报错BMapGL is not defined

在vue项目中使用地图api,报错BMapGL is not defined

莫宛的博客 7269

DRV2605L触觉驱动芯片实战指南:从自动校准到音频转触觉应用

触觉反馈技术是现代人机交互的核心组成部分,它通过精确控制振动马达来模拟物理触感,广泛应用于智能手机、游戏手柄和汽车触摸屏等领域。其原理在于将电信号转化为机械振动,关键在于如何高效、精准地驱动不同类型的马达(如ERM和LRA)。这项技术的核心价值在于提升交互的真实感和沉浸感。在工程实践中,集成驱动芯片如DRV2605L通过内置智能反馈引擎和自动校准功能,解决了传统驱动方式响应慢、效果不一致的难题。它特别适用于需要高质量触觉反馈的应用场景,例如消费电子、游戏外设和车载信息娱乐系统。其中,自动校准能自适应优化驱动

weixin_42631411的博客 341

高性能JS 动态脚本加载loadScript

Nonblocking Scripts 非阻塞脚本 JavaScript 倾向于阻塞浏览器某些处理过程,如 HTTP 请求和界面刷新,这是开发者面临的最显著的性 能问题。保持 JavaScript 文件短小,并限制 HTTP 请求的数量,只是创建反应迅速的网页应用的第一步。 一个应用程序所包含的功能越多,所需要的 JavaScript 代码就越大,保持源码短小并不总是一种选择。尽 管下载一

u010289111的专栏 1万+

5G边缘计算:核心网下沉革命

5G核心网与边缘计算的深度融合,通过UPF下沉、本地流量卸载等关键技术,实现了低时延、高效能的分布式计算架构。该技术将数据处理从核心网向边缘节点转移,支持工业控制、车联网、远程医疗等场景的1-10ms超低时延需求。5G核心网的SBA架构和CUPS设计为边缘计算提供了灵活部署基础,SMF、PCF等网元协同确保业务质量与可靠性。

Qinti_mm的博客 1400

AXI总线的Burst Type以及地址计算 | WRAP到底是怎么一回事?

AXI总线的transaction是burst-based的,因此有必要好好研究一下不同burst type的工作原理。此处略过burst的定义以及burst size、burst length等信号的介绍。

qiuzhongyu123的博客 2万+

vue使用畅言评论

之前还在使用html编写代码的时候,就已经使用过畅言评论了,总体感觉还好,毕竟那时候是免费的,不能要求太高不是,现在一直在用vue开发项目,发现百度上并没有vue使用畅言的例子,于是就有了这篇博文,希望可以帮助到其他人。 首先写一个vue原型方法,用来动态加载外部script。 Vue.prototype.$loadScript = (url, callback) =&gt; { le...

僵小蛋的博客 1395

数字电路实验避坑指南:如何正确搭建主从JK触发器测试电路(附Proteus仿真)

本文详细解析了主从JK触发器的工作原理及实验搭建指南,重点解决了常见的Catching Problem现象,并提供了Proteus仿真优化方案。通过元器件选型、电路连接步骤和常见错误排查,帮助读者正确搭建测试电路,确保数字电路实验的稳定性和可靠性。

weixin_30790841的博客 469

js_service

[code="js"] /** * 该脚本文件提供与后台servlet交互(提供类Service,封装了与servlet交互的整个过程) * 及xml字符串的解析(loadXml)功能, * 另提供一些公用的函数 * 注意:该类只能应用于由主控制台的工作区管理的页面内! */ /** 获取站点根路径。本方法用来解决绝对路径应用的硬编码问题。 * @return ...

zlemo1984的专栏 266

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

零基础学simulink仿真建模--基于Simulink进行近端策略优化(PPO)路径规划的仿真建模

特点高效性与稳定性:通过引入剪裁机制,在更新策略时限制步长,从而提高了训练过程的稳定性和效率。适用于多种动作空间:可以处理连续和离散的动作空间问题。无需模型:不需要预先知道环境的确切模型,适合复杂或未知环境。挑战收敛速度与稳定性:确保算法能够在合理的时间内找到近似最优解,并保持训练过程的稳定性。探索与利用平衡:在探索新路径和利用已知信息之间取得平衡。计算资源:对于大规模状态空间和动作空间,计算资源需求较高。首先明确要模拟的任务内容。目标(例如到达指定地点、避开障碍物等)。

amy_mhd的博客 249

js调用webservice完整说明

浏览器针对js默认做了跨域认证,要进行跨域使用,就必须对webservice的web.config进行取消跨域配置。注:如果一方是http,则webservice 也必须是http。同理https也是一样。

qq_30375391的博客 2968

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例文件注释--olaFlow-算例1- baseWaveFlume

ou_no的博客 3639

简单js访问web service

1, 给这个web service增加一个[ScriptService]属性来实现这个特性。 该属性在System.Script.Services命名空间内。 该命名空间在System.Web.Extensions程序集中。 [ScriptService]属性必须像下面这样应用到web service类中。2,写web service 代码using System.Web.Script.Ser

jackwofe的专栏 2012

回归预测 | MATLAB实现MPR多元多项式回归

回归预测 | MATLAB实现MPR多元多项式回归

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 1645

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

使用JavaScript创建Zip文件

使用JavaScript创建Zip文件 尽管我们在服务器端使用JavaScript做着令人惊奇的事情,但重要的是不要将目光投向客户端上发生的一些事情。 我最近发现的一个如此出色的项目是JSZip :这是一个JavaScript库,可让您轻松地从前端生成ZIP文件。 那为什么有用呢? 您可以允许用户从图库或几乎所有其他内容中选择和下载图像。 让我们看一下JSZip如何允许您从客户端生成结构化...

Web 开发&软件开发 2576

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Vue 2 如何添加 register-service-worker 以实现缓存请求的目的

现在 vue 3 的模板中是自带的。用这个的好处是,它会自动将项目中的所有文件请求缓存到中,以实现再次打开网站的时候会非常非常快。如果页面中变化,也会自动在后台下载变化的文件,页面的变化在下次刷新页面的时候就会自动生效。

学习笔记 4472

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python与pwa在windows系统上chrome浏览器未出现添加应用的按钮问题

python与pwa在windows系统上chrome浏览器未出现添加应用的按钮问题 用python -m http.server启动文件服务器时 可以在浏览器控制台看到报错 根据报错信息是将js文件类型错返回为text/plain 所以只要将对应的js文件的content-type类型修改为application/javascript就没问题了 这里就不细说了, 关于http.server的修改自行百度 下面讲下flask解决方案 flask部署pwa 简单一点我们可以直接在npm run build

flyinghu123的博客 567

extjs6.5文件上传_EXTjs上传文件

上传文件修改:(参考ZjDrillCtrlFlowheadSchd井口装置图)文件保存图:主表主键在前台JSP生成传到JS传到主表service做主键ID传到文件信息service外键ID1、修改JSPStringformBelongId=java.util.UUID.randomUUID().toString();这个也就是生成主表主键,在前台JSP生成;加入JS文件href="/r...

weixin_35788791的博客 204

SSM框架访问静态文件(js,css)出现404问题

刚接触SSM与前端的交互,首先要解决的问题是,静态文件的正常访问,然而,可能是我的查找方法太渣渣,以至于找到的大多都是一样的。于是根据我自己的个人情况,来总结一下这个SSM静态文件正确访问的问题。

wen_xiaobaobei的博客 2171

html5 添加图标到桌面,添加到主屏幕图标HTML5

首先,我想在下面的图片中显示项目结构。我创建了一个公用文件夹,所有文件都在文件夹中。清单文件不在公用文件夹中。this is image之后我们将创建文件的清单文件代码,如下所示。的manifest.json 强>{"short_name": "BetaPage","name": "BetaPage","theme_color": "#4A90E2","background_color": ...

weixin_39865440的博客 1665

【应用服务 App Service】NodeJS +Egg 发布到App Service时遇见 [ERR_SYSTEM_ERROR]: A system error occurred:uv_os_ge

在修改node-homedir\index.js中的源代码,把里面 os.userInfo().homedir 的部分替换成在App Service中的Homedir路径,hardcode这一部分。如 const homedir =”D:\home\site\wwwroot\“;并指出了报错的源文件为:(D:\home\site\wwwroot\pynode\node_modules\node-homedir\index.js:10:26),在源代码中,找出了问题的根源。最快速且无代码改动方案。

qq_34510843的博客 643

JavaEE 文件上传

文件上传 1、pom.xml 首先需要``导入两个jar包 <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId&g

ghijkldi的博客 549

【亲测免费】 Egg.js 参数验证插件 egg-validate 使用指南

Egg.js 参数验证插件 egg-validate 使用指南 项目目录结构及介绍 Egg.js 的 egg-validate 插件是为了简化 API 参数验证而设计的。虽然具体的仓库链接未直接提供,但我们可以根据 Egg.js 项目的常规结构和上述引用内容推测其基本组织方式。 常规目录结构示例: src app controller - 控制器文件存放处,这是验证逻辑经常被调用的地方。...

gitblog_01026的博客 715

react+webpack+cdn如何配置PWA(Service workers)

react+webpack+cdn如何配置PWA(Service workers)

徐同保的专栏 403

wx小程序自定义tabbar

3.在utils添加tab-service.js(通过接口请求,去判断显示那个tabbar)1.在app.json文件中,添加自定义tabbar配置:"custom": true。4.在tabbar对应界面添加。我的页面中的index.js。首页中的index.js。

我是小鹏呀的博客 647
上一篇: Angualr6 响应式表单赋默认值和重置值
下一篇: Springboot2.0 整合 Swagger API 接口
phpfzh
博客等级 码龄10年 22粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值