ExtJS 4.2 教程-02:bootstrap.js 工作方式
在上一篇中,我们将bootstrap.js引入页面,并没有直接引用ExtJS的脚本文件,而是通过bootstrap在启动的时候动态的选择要将哪些extjs脚本添加到页面中。在本文中我们来介绍一下bootstrap.js的工作方式。
我们在Google Chrome 浏览器中,打开开发人员工具(关于在Google Chrome 浏览器中调试Javascript代码,参考我之前的文章 《在Chrome 中调试Javascript》)
打开开发人员工具之后,点击Network标签,然后刷新页面,这时我们就跟踪到了所有文件的请求:
![]()
可以看到,尽管我们没有在页面中引用ext-all-dev.js 文件,但页面仍然进行将这个脚本加入了页面的引用,而它的引入者(Initiator 列)是bootstrap.js。
由此可以考出,bootstrap.js 会自动为我们添加ext 的引用,那么它是怎么确定要引用哪个ExtJS文件的呢?我们的目录中有分别有三个文件:
- ext-all-debug.js:用于调试时引用
- ext-all-dev.js:用于开发时引用
- ext-all.js:在发布时引用
所幸我们有bootstrap.js文件的源代码,打开看一下源代码,在注释部分有文件引用的说明:
/**
* Load the library located at the same path with this file
*
* Will automatically load ext-all-dev.js if any of these conditions is true:
* - Current hostname is localhost
* - Current hostname is an IP v4 address
* - Current protocol is "file:"
*
* Will load ext-all.js (minified) otherwise
*/
这段注释的大概意思是:
/**
* 加载本文件相同路径中的库
*
* 满足以下条件将自动加载 ext-all-dev.js:
* - 当前主机名是 localhost
* - 当前主机名是 IP v4 地址
* - 当前协议是 "file:"
*
* 其它情况下将加载 ext-all.js (minified)
*/
很显然,我们的主机名是localhost,bootstrap.js自动为我们加载了 ext-all-dev.js。
我们要验证一下是否在发布环境中,bootstrap能够为我们自动加载ext-all.js,该怎么做呢?
方法是修改我们的 hosts 文件,这个文件在系统盘的 Windows\System32\drivers\etc 中,我们打开这个目录:
![]()
打开hosts文件,添加以下两行内容:
127.0.0.1 abc.com
127.0.0.1 www.abc.com
hosts 文件的作用就是将DNS服务器的作用,用来将域名 abc.com 和 www.abc.com 解析到我们本机(地址是127.0.0.1)。
接下来我们在浏览器中使用域名来浏览sampleExtJS:
![]()
在Network网格中可以看到,这次加载的文件是ext-all.js,这个文件是被压缩过的,可以减少很多网络流量,适合于发布的环境。
ExtJS 4.2 教程-02:bootstrap.js 工作方式的更多相关文章
- Git教程(9)集中式工作方式常用的设计分支的方案
Git是一个复杂的版本管理系统,管理代码有很多工作方式,如集中式,管理者式,司令/副官式 本文是假设选用集中式工作方式时,设计分支的方案. 中小型项目: 维护两个长期分支,分别是master 和 de ...
- ExtJS入门教程02,form也可以很优雅
在上一篇<Extjs window 入门>中,我们已经看到了如何将一个form组件放到window中,今天我们来看看form的一些优雅的工作方式. 使用fieldDefaults,优雅的设 ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的基本架构和工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的基本架构和工作机理 广东职业技术学院 欧浩源 ohy3686@foxmail.com Z-Stack协议栈是一个基于任务轮询方式的操作 ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院 欧浩源 Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...
- ExtJS 4.2 教程-01:Hello ExtJS
转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-1-hello-extjs, 本文还发布在了ExtJS教程网站起飞网上面,如果转载请保留本段声明,谢谢合作 ...
- 02: vue.js常用指令
目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...
- ExtJS 4.2 教程-06:服务器代理(proxy)
转载自起飞网,原文地址:http://www.qeefee.com/extjs-course-6-server-proxy ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4.2 ...
- Bootstrap3基础教程 02 网格布局
Bootstrap 提供了一套响应式.移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多列. 网页设计中的网格布局作用:组织内容,让网站易于浏览,并降低用户端 ...
- [译]Vulkan教程(02)概况
[译]Vulkan教程(02)概况 这是我翻译(https://vulkan-tutorial.com)上的Vulkan教程的第2篇. This chapter will start off with ...
随机推荐
- Vue.js项目集成ElementUI
Vuejs实例-02Vue.js项目集成ElementUI Vuejs实例-02Vue.js项目集成ElementUI 0:前言 vue.js的UI组件库,在git上有多个项目,我见的使用者比较多 ...
- 【LOJ】#2888. 「APIO2015」巴邻旁之桥 Palembang Bridges
题解 发现我们选择一座桥会选择力\(\frac{s + t}{2}\)较近的一座桥 然后我们只需要按照\(s + t\)排序,然后枚举断点,左边取所有s和t的中位数,右边同理 动态求中位数用平衡树维护 ...
- JDBC事务与事务隔离级别详解
事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句.是数据库操作的一个执行单元. 事务开始于: 连接到数据库上,并执行一条DML语句insert.update或delete 前一个事务结 ...
- 【GOF23设计模式】--单例模式
核心作用: 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 常见应用场景 windows的任务管理器 windows的回收站 项目中,读取配置文件的类 网站的计数器,否则难以同步 应用程序 ...
- Codeforces 652F Ants on a Circle
Ants on a Circle 感觉这个思路好巧妙啊. 我们能发现不管怎么碰撞,初始态和最终态蚂蚁间的相对顺序都是一样的, 并且所占的格子也是一样的, 那么我们就只需要 找到其中一个蚂蚁的最终位置就 ...
- P1679 神奇的四次方数
P1679 神奇的四次方数用一些什么东西组成一个什么东西,要求什么东西最优,这时候要考虑背包,不过要分析清楚是什么类型的背包.这题显然是个完全背包. #include<iostream> ...
- shiro xml标准配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- forof循环
一.语法 1.遍历数组 let myArr=[1,2,3,4,5]; for (let ele of myArr) { console.log(ele); } let myArr=[1,2,3,4,5 ...
- 【BZOJ 1061】 1061: [Noi2008]志愿者招募 (线性规划与网络流)**
1061: [Noi2008]志愿者招募 Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难 题:为即将启动的奥运新项目招募一批短 ...
- 【NOIP复习】最短路总结
[模板] /*堆优化Dijkstra*/ void dijkstra() { priority_queue<pair<ll,int>,vector<pair<ll,int ...