javascript 的引入

目录

  • 静态引入
  • 动态引入
    • 总结

@(es6)

静态引入

  1. html标签script引入
  2. esm 中import ModuleName from ‘module/path‘
  3. commonjs 中 const ModuleName = reuquire(module/path)
  4. AMD,年代久远,价值在于jquery源码采用模块是AMD,你要学习jquery设计模式,必先学习AMD
require([‘module1/path‘], function (module1) {
    module.someMethod()
})
  1. CMD,完全忘记是什么,现在就只知道到它,就近依赖(类似动态加载)
  2. webpack .externals 构建引入(其他构建工具暂不清楚),这个根据webapck版本设置,因为webpack每个版本都有调整,参考地址 https://www.webpackjs.com/configuration/externals/#externals

动态引入

  1. import()
import(‘module1/path‘).then(res => {
    // todo
})

// 打包成chunk 模块
import(/*webpackChunkName Module1 */, ‘module1/path‘).then((res) => {
    // todo
})
  1. require.ensure() (已经不推荐使用了)

注意:这不是commonjs规范,这是webpack中module知识点

require.ensure(dependencies: String[], callback: function(require), errorCallback: function(error), chunkName: String)

示例:

const modulePathObj = {
    module1: ‘module1/path‘
}
const modulePathAry = Object.keys(modulePathObj).map(item => modulePathObj[item])
require.ensure(modulePathAry, function(require) {
    const module1 = require(modulePathObj.module1)
})

阮一峰 commonjs require基础参考

  1. DOM节点scriptonload事件
export const LoadScript = (url) => {
    return new Promise((resolve, reject) => {
        try {
            const script = document.createElment(‘script‘)
            script.onload = () => {
                resolve()
            }
            script.src = url
            document.querySelect(‘head‘).appendChild(script)
        } cathc (err)  {
            reject(err)
        }
    })
}
  1. jsonp

通常听到是解决跨域(但在现在跨域的解决方案基本上是nginx)。jsonp的机制不就是返回js的callBack

百度地图在es6中就是这么引入(我目前就遇到这个)

export const loadBMap = function () {
    const AK = ‘百度ak值‘
    const url = ‘https://api.map.baidu.com/api?v=2.0&ak=‘ + AK + ‘&s=1&callback=onBMapCallback‘
    return new Promise((resolve, reject) => {
      // 如果已加载直接返回
      if (typeof BMap !== ‘undefined‘) return resolve(BMap)
      // 百度地图异步加载回调处理
      window.onBMapCallback = function () { resolve(BMap) }
      // 插入script脚本
      let scriptNode = document.createElement(‘script‘)
      scriptNode.setAttribute(‘type‘, ‘text/javascript‘)
      scriptNode.setAttribute(‘src‘, url)
      document.body.appendChild(scriptNode)
    })
  }
}

总结

js引入不成功,上面是10种方式中肯定有一种能解决的,我目前是没有遇到不成功的,就算是seajs,无非define第三方库模块方式。

原文地址:https://www.cnblogs.com/liangcheng11/p/10237826.html

时间: 2024-11-05 17:25:06

javascript 的引入的相关文章

javascript的引入

1.javascript代码插入html里面主要利用<script></script>元素: 本页面插入js代码:<script type="text/javascript"></script> 引入外部资源文件:<script type="text/javascript" src="path.js"></script> 注:页面在解析中遇见任何</script>

JavaScript文件引入方式区别

1.JavaScript文件引入方式 (1)正常引入 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> (2)defer <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js" defer="defer"></script> (3)as

javascript 动态引入css js

include css and js /**  * 导入CSS文件  */ for(var i = 0; i < common_css_files.length; i++){ document.write("<link rel='stylesheet' type='text/css' href='"+common_css_files[i]+"'>"); } /**  * 导入JS文件  */ for(var i = 0; i < common

Javascript的引入方式

JS的三种引入方式: (JS的注释与PHP相同,单行注释使用//,多行注释使用/* */). 1,源码中任何地方都可以直接使用JS代码,但是它的优先级最低,推荐写到最后 <script> alert('123');      //直接使用,打开网页弹窗显示:123. </script> 2,由外部文件引入,例如CSS,但注意:外部引入JS文件,内部不可再写JS代码 <script src="引入JS文件的绝对路径"></script> 3

ajax(Asynchronous JavaScript + XML) 技术学习

参考文档:https://developer.mozilla.org/en-US/docs/AJAX 本文进行了大致翻译. Ajax 本身本不是一门技术,而是在2005年由Jesse James Garrett首创的描述为一个"新"途径来应用许多已存在的技术,包括:HTML 或者 XHTML, Cascading Style Sheets, JavaScript, The Document Object Model, XML, XSLT, 和最重要的 XMLHttpRequest ob

JavaScript高级程序设计笔记之面向对象

说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,JavaScript中如何面向对象? JavaScript中将对象定义为:一组无序的 键值对的集合,属性以及方法的名称就是键,键的值可以是任何类型(字符串,数字,函数--) 在JavaScript中,所有对象继承自Object,所有对象继承自Object,所有对象继承自Object! 创建 1  简单创建

前端JavaScript规范

JavaScript规范 目录 类型 对象 数组 字符串 函数 属性 变量 条件表达式和等号 块 注释 空白 逗号 分号 类型转换 命名约定 存取器 构造器 事件 模块 jQuery ES5 兼容性 HTML.CSS.JavaScript分离 使用jsHint 前端工具 类型 原始值: 相当于传值(JavaScript对象都提供了字面量),使用字面量创建对象. string number boolean null undefined var foo = 1, bar = foo; bar = 9

JavaScript笔记一

一 JavaScript的引入方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--<script>--> <!--alert("你好!")--> <!--</script>--> <

JavaScript在页面中的引用方法

现在前端开发越来越流行,框架也越来越多,像ExtJs.JQuery.Bootstrap等.虽然入行这么多年,但是感觉自己在前端方面还是存在基础不牢的地方,特别是CSS和JS.因此最近打算重新阅读这方面的经典书籍,来夯实自己的基础.因此打算边读书,边写博客,将我自己的感觉有用的地方记下来,以加深印象. 在前端开发,人人都会遇到JavaScript,也必须了解它.在用到它之前,首先必须了解怎么样将其引用到自己的页面中去.以前因为是快速开发,很少去关注这点,对JavaScript的引入,一掠而过,没有