首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用document.write异步运行外部JS函数

是一种在网页中动态加载并执行外部JavaScript函数的方法。当网页加载时,浏览器会按照HTML文档的顺序解析和执行其中的代码。而使用document.write可以在页面加载过程中向页面中插入JavaScript代码,从而实现异步加载和执行外部JS函数。

具体步骤如下:

  1. 创建一个外部的JavaScript文件,例如"external.js",其中包含需要异步运行的函数定义。
  2. 在HTML文档中使用<script>标签引入外部JavaScript文件:
  3. 在HTML文档中使用<script>标签引入外部JavaScript文件:
  4. 在需要异步运行外部JS函数的地方,使用document.write来插入JavaScript代码:
  5. 在需要异步运行外部JS函数的地方,使用document.write来插入JavaScript代码:
  6. 注意,由于document.write会直接将内容写入到HTML文档中,为了避免脚本标签被解析为HTML标签,需要对结束标签进行转义。
  7. 当浏览器解析到这段代码时,会立即加载并执行外部JavaScript文件,从而实现异步运行外部JS函数。

这种方法适用于需要在特定时机动态加载和执行外部JS函数的场景,例如根据用户操作或特定条件加载不同的功能模块。然而,由于document.write会直接修改HTML文档结构,因此在使用时需要注意对页面布局和性能的影响。

腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):https://cloud.tencent.com/product/scf
  • 云开发(CloudBase):https://cloud.tencent.com/product/tcb
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 云数据库(TencentDB):https://cloud.tencent.com/product/cdb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

动态调用js文件、外部js文件时,alert起作用 document.write不起作用

问题代码: function test(){ var script=document.createElement('script'); script.src='js/write.js'; var dd=...document.getElementById('dd'); dd.appendChild(script); } 通过test函数调用write.js文件 内容主要是document.write('**...****************'),页面并无内容输出 如果write.js里面是alert内容 则会弹窗!...因此,假如希望用脚本生成的HTML替换当前页面,就必须把HTML内容连接起来赋给一个变量,使用一个document.write()方法完成写操作。...现在是页面已经加载进来了,所以我认为点击后,加载进来的js,执行document.write,那么文本的输出浏览器不处理,而不是像加载时输出在当前元素里面。

4.7K10
  • JS完美收官之——js加载时间线

    浏览器在开始运行一个页面的时候,首先它会初始化js功能,当js发挥它的功能时候,记录了一系列浏览器按照顺序做的事情,也就是一个执行顺序,谁在谁之前发生,谁在谁之后发生。...3.遇到 script 外部 js,并且没有设置 async、defer,浏览器同步加载,并阻塞,等待 js 加载完成并执行该脚本,然后继续解析文档。...4.遇到 script 外部 js,并且设置有 async、defer,浏览器创建线程异步加载,并继续解析文档。...(异步禁止使用 document.write()) ⚠️ 注意:async 属性的脚本,脚本加载完成后立即执行。defer属性脚本要等到dom解析完成后再执行。...⚠️ 注意:(异步禁止使用 document.write(),因为当你整个文档解析到差不多,再调用 document.write(),会把之前所有的文档流都清空,用它里面的文档代替,除了异步禁止,而且当内容全部加载完毕后也要禁止使用

    1.3K10

    函数式编程与JS异步编程、手写Promise

    一、谈谈你是如何理解JS异步编程的,EventLoop、消息队列都是做什么的,什么是宏任务,什么是微任务? ? 1. 异步编程:回调函数、事件监听、发布/订阅、Promises对象 2....EventLoop是主线程从"任务队列"中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop(事件循环)。...宏任务 Macrotasks 就是参与了事件循环的异步任务;微任务 Microtasks 就是没有参与事件循环的“异步”任务。...代码题 一、将下面异步代码使用Promise的方式改进 setTimeout(function () { var a = "111" setTimeout(function () {..._average重构 averageDollarValue ,使用函数组合的方式实现 let _average = function (xs) { return fp.reduce(fp.add

    1K10

    客户端的js js脚本的引入 js的解析过程

    url中的js 应用用途 书签 通过协议类型指定url内容为任意字符串,该字符串是会被js解释器运行js代码,其会被当成单独的一行代码实现。即语句之间必须使用分号作为分割。 即,书签的实现。...一般事件会是用户输入,键盘输入,网络活动,运行时间等等。 事件驱动的第一个事件,即第一个被执行的事件为load事件。...不会出现js阻塞页面ui的渲染。异步的时候执行是无序。 事件驱动的js js还能通过注册事件程序函数写程序。之后在发生该事件的时候异步调用这些函数。...异步的时候禁止使用document.write,因为此时脚本无法插入文档流中。异步的时候,解析是随意的。也不清楚什么时候脚本会解析。 文档解析完成。...此时表明解析完成 所有有defer属性的脚本,会在此时执行,此时能访问完成的文档树,但是禁止使用document.write()因为此时文档树已经固定 浏览器进入异步事件驱动阶段。

    13.1K80

    js运行机制同步与异步(宏任务与微任务)

    js运行机制 众所周知,javascript的最大特点就是单线程,同一时间追能做同一件事,所以为了防止主线程的阻塞,在代码执行时分为同步任务和异步任务,所有的同步任务在主线程上执行,形成执行栈,而异步任务形成一个新的任务队列...(Node.js 环境),requestAnimationFrame,I/0,UI交互,postMessage 微任务 需要在当前 同步任务 执行结束后立即执行的任务,比如对一系列动作做出反馈,或者是需要异步的执行任务而又不需要分配一个新的任务...,这样便可以减小一点性能的开销 常见的微任务包括Promise.then,Object.observe,MutationObserver,process.nextTick(Node.js 环境) 运行机制...setTimeout qz"); }, 0); console.log("qz"); //输出结果 //qz //setTimeout qz 2.先执行主线程的同步任务,构造函数是同步任务...代码,环境为同步环境,将同步任务分为对应的堆和执行栈 2.同时,主线程执行中遇到异步任务,会将其推给异步进程进行处理,webAPI 3.异步任务对异步任务进行处理,遵循先进先出的顺序依次推入任务队列(

    1.1K10

    在HTML中使用JavaScript

    defer属性的运行流程: 浏览器开始解析HTML网页 解析过程中,发现带有defer属性的元素 浏览器继续往下解析HTML网页,同时并行下载元素加载的外部脚本 浏览器完成解析...HTML网页,此时再回过头执行已经下载完成的脚本 需要注意: 异步加载资源 按照顺序执行脚本 使用defer加载的外部脚本不应该使用document.write方法 async属性 async属性的运行流程: 浏览器开始解析HTML网页 解析过程中,发现带有async...网页 需要注意: 异步加载资源 并不会按照顺序执行JS,谁先下载完,谁就先执行 使用async加载的外部脚本不应该使用document.write方法 async和defer属性归纳 都能解决“阻塞效应...” 都是异步加载资源,但执行顺序不一样 如果脚本之间没有依赖关系,就使用async属性,如果脚本之间有依赖关系,就使用defer属性 动态生成脚本 ['a.js', 'b.js'].forEach(function

    1.4K30

    使用JS异步回调解决pjax加载问题

    pjax的坑 使用pjax会导致部分js插件无法加载,最后我选择异步加载解决问题。 你可能会问异步就够了为什么还有个callback是干啥的,不急你先看看代码。...loaded') { callback(); } }); } head.appendChild(script); } 问题 pjax我尝试异步加载然后立马执行页面的...js代码,发现页面js中对象Undefined 未定义,我第一反应不对啊,依赖的js文件都加载了,控制台执行都能页面上这段js,我想是不是还没加载好js文件,于是写了这个异步加载函数。...问题继续 我写了个loadScript("",某回调函数()) 回调函数里面执行了有关这个js的代码 结果依然未定义 我蒙了 突然我发现我有点傻 回调函数()作为参数的时候这个函数已经被执行了,所以出现了未定义...于是我代码修改为 loadScript("js文件",函数名) 把()去掉就解决了 完成!修好了。

    2.4K10

    json与js时间线

    json 异步加载js js加载的缺点:加载工具方法没必要阻塞文档,过得js加载会影响页面效率,一 旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作。...2.async 异步加载,加载完就执行,async只能加载外部脚本,不能把js写在script 标签里。...2、遇到link外部css,创建线程加载,并继续解析文档。 3、遇到script外部js,并且没有设置async、defer,浏览器加载,并阻塞,等待js 加载完成并执行该脚本,然后继续解析文档。...(异步禁止使用document.write()) 5、遇到img等,先正常解析dom结构,然后浏览器异步加载src,并继续解析文档。...(注意与async的不同,但同样禁止使用document.write()); 8、document对象触发DOMContentLoaded事件,这也标志着程序执行从同步脚本执行阶段, 转化为事件驱动阶段

    4.5K10

    js的并行加载以及顺序执行

    现在现总结下并行加载多个js的方法:   1,对于动态createElement('script')的方式,对所有浏览器都是异步并行加载的。...2,可以通过document.write('')的方式来并行加载(IE,现代浏览器)和顺序执行。   3,通过xhr加载js。...但是有了同源的限制,因此对于外部js文件或者cdn上的js就无能为力。 已经有些大牛比如之前提到的Kyle已经提供了兼容个浏览器的标准库,项目名称是 LABjs。...,异步xhr加载js,并行无序加载js和其他资源,需要进行顺序控制;而且受同源限制, //无法使用cdn或外部引用js asyncHelper....flag){ //firefox opera使用DomElement方式加载,确保顺序性和异步加载 // 经测试,目前最新版本的Firefox

    5.5K80
    领券