index.html的主要内容如下:

<!--第三方lib,加载js文件-->

<script
type="text/javascript"

src="lib/include-lib.js?time=20210329"

**************解析***********

include-lib.js文件是一个自调用函数

函数表达式可以 "自调用"。
自调用表达式会自动调用。
如果表达式后面紧跟 () ,则会自动调用。
不能自调用声明的函数。
通过添加括号,来说明它是一个函数表达式:
实例
(function () {
var x = "Hello!!";      // 我将调用自己
})();

也可带参数

(function aaa(a,b){
return sum = a + b
;})(1,2)

(function () {

//声明3个变量
var r = new RegExp('(^|(.*?\\/))(include-lib.js)(\\?|$)'),
s = document.getElementsByTagName('script'),
targetScript

//执行for循环
for (var i = 0; i < s.length; i++) {
var src = s[i].getAttribute('src')
if (src) {
var m = src.match(r)
if (m) {
targetScript = s[i]
break
}
}
}
// cssExpr 用于判断资源是否是css
var cssExpr = new RegExp('\\.css')
//定义函数
function inputLibs(list) {
if (list == null || list.length === 0) {
return
}
//执行for循环
for (var i = 0, len = list.length; i < len; i++) {
var url = list[i]
if (cssExpr.test(url)) {
var css = '<link rel="stylesheet" href="' + url + '">'
document.writeln(css)
} else {
var script = '<script type="text/javascript" src="' + url + '"><' + '/script>'
document.writeln(script)
}
}
}
//加载类库资源文件
function load() {
var arrInclude = (targetScript.getAttribute('include') || '').split(',')
var libpath = targetScript.getAttribute('libpath') || ''

//为了节省github空间,没有上传lib下面的类库到github
//如果离线使用,可以从  http://mars3d.cn/download/lib.rar  下载后覆盖lib目录,并注释下面一行代码
//libpath = "http://mars3d.cn/lib/"
if (libpath.lastIndexOf('/') !== libpath.length - 1) {
libpath += '/'
}
var libsConfig = {
'jquery': [
libpath + "jquery/jquery-2.1.4.min.js",
],
此处省略
'mars3d': [
//三维地球“主库”
libpath + 'Cesium/Widgets/widgets.css', //cesium
libpath + 'Cesium/Cesium.js',
// libpath + 'mars3d/plugins/compatible/cesium-version.js', //cesium版本兼容处理
libpath + 'mars3d/mars3d.css', //mars3d
libpath + 'mars3d/mars3d.js',
libpath + 'mars3d/plugins/navigation/mars3d-navigation.css', //导航插件
libpath + 'mars3d/plugins/navigation/mars3d-navigation.js',
],
}
//定义对象
var keys = {}
for (var i = 0, len = arrInclude.length; i < len; i++) {
var key = arrInclude[i]
if (keys[key]) {
//规避重复引入lib
continue
}
keys[key] = true
inputLibs(libsConfig[key])
}
}//load函数的结尾
//执行load函数
load()
})()

**************解析***********

libpath="lib/"
include="jquery,jquery.range,bootstrap,bootstrap-checkbox,font-awesome,web-icons,layer,haoutil,nprogress,toastr,admui,turf,mars3d,mars3d-widget,mars3d-esri"
></script>

<link href="css/style.css?time=20210329" rel="stylesheet" />

*************解析***************

内部样式表
当单个文件需要特别样式时,就可以使用内部样式表。你可以在<head> 部分通过 <style>标签定义内部样式表:

<head>
<style type="text/css">
body {background-color:yellow;}
p {color:blue;}
</style>
</head>

外部样式表
当样式需要被应用到很多页面的时候,外部样式表将是理想的选择。使用外部样式表,你就可以通过更改一个文件来改变整个站点的外观。

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
rel,必需。定义当前文档与被链接文档之间的关系。rel 是 relationship的英文缩写。
alternate
archives
author
bookmark
external
first
help
icon
last
license
next
nofollow
noreferrer
pingback
prefetch
prev
search
sidebar
stylesheet //样式列表
tag
up

*************解析***************

</head>

<body class="dark">
<div id="centerDiv">
<div id="mars3dContainer" class="mars3d-container"></div>
</div>

<div id="mask" class="signmask"></div>

******************解析******************

style.css文件中:

/*dark样式*/
.dark {
color: #ffffff;
}

#centerDiv {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
left: 0;
top: 0;
border: none;
overflow: hidden;
position: relative;
}

.signmask {
height: 100%;
width: 100%;
background: rgba(0, 0, 0, .5);
filter: alpha(opacity=50);
position: fixed;
display: block;
z-index: 20180910;
top: 0;
left: 0;
background: rgba(0, 0, 0, .5) url("../img/icon-operate.png") center no-repeat;
}

mars3d.css文件中

.mars3d-container {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
position: relative
}
CSS 选择器
CSS选择器用于选择你想要的元素的样式的模式。

选择器  示例  示例说明 CSS版本
.class  .intro  选择所有class="intro"的元素 1
#id  #firstname  选择所有id="firstname"的元素 1
*  *  选择所有元素 2
element  p  选择所有<p>元素 1
element,element  div,p  选择所有<div>元素和<p>元素 1
element element  div p  选择<div>元素内的所有<p>元素 1
element>element  div>p  选择所有父级是 <div> 元素的 <p> 元素 2
element+element  div+p  选择所有紧接着<div>元素之后的<p>元素 2
[attribute]  [target]  选择所有带有target属性元素 2
[attribute=value]  [target=-blank]  选择所有使用target="-blank"的元素 2
[attribute~=value]  [title~=flower]  选择标题属性包含单词"flower"的所有元素 2
[attribute|=language]  [lang|=en]  选择 lang 属性以 en 为开头的所有元素 2
:link  a:link  选择所有未访问链接 1
:visited  a:visited  选择所有访问过的链接 1
:active  a:active  选择活动链接 1
:hover  a:hover  选择鼠标在链接上面时 1
:focus  input:focus  选择具有焦点的输入元素 2
:first-letter  p:first-letter  选择每一个<p>元素的第一个字母 1
:first-line  p:first-line  选择每一个<p>元素的第一行 1
:first-child  p:first-child  指定只有当<p>元素是其父级的第一个子级的样式。 2
:before  p:before  在每个<p>元素之前插入内容 2
:after  p:after  在每个<p>元素之后插入内容

******************解析******************

<!--业务代码-->
<script src="js/index.js?time=20210329"></script>

</body>

***************************解析***************

index.js调用的代码

'use script' //开发环境建议开启严格模式
//系统主入口

var map //地球对象
var request //传入的get参数

//地图
$(document).ready(function () {
//判断webgl支持
if (!mars3d.Util.webglreport()) {
mars3d.Util.webglerror()
}

//记录url传入参数
request = haoutil.system.getRequest()
if (window.top) {
//有父级
request = $.extend(request, haoutil.system.getRequest(window.top))
}

var configfile = 'config/config.json' //默认地址
if (request.config) {
//url传入地址
configfile = request.config
}

haoutil.loading.show()

$.ajax({
type: 'get',
dataType: 'json',
url: configfile,
timeout: 0,
success: function (data) {
haoutil.loading.hide()

//构建地图
initMap(data.map3d)

setTimeout(removeMask, 3000) //欢迎UI关闭处理
},
error: function (request, textStatus) {
removeMask()
haoutil.loading.hide()
haoutil.alert('1.请检查文件内 json 语法是否存在问题。<br />2.请在浏览器输入文件url测试是否可以访问。', configfile + ' 文件加载失败')
console.log(textStatus, request)
},
})

initUI()
})
下面的函数省略;

$(document).ready()

window.onload = function(){ alert("welcome"); }
语句的作用是希望在页面加载完,自动执行定义js代码(function)。

$(document).ready(function(){.... })这个函数是用来取代页面中的window.onload;

$(document).ready()和onload的区别
$(document).ready()和传统的方法<body οnlοad=”load()”> 相似,不同的是onload()的方法是在页面加载完成后才发生,这包括DOM元素和其他页面元素(例如图片)的加载。而$(document).ready()所要执行的代码是在DOM元素被加载完成的情况下执行,所以,使用document.ready()方法的执行速度比onload()的方法要快。

Javascript 只有在DOM元素已经定义以后才可以对其执行某种操作,jQuery使用document.ready来保证所要执行的代码是在DOM元素被加载完成的情况下执行。

1、DOM
DOM全称 Document Object Model,即文档对象模型,它允许脚本(js)控制Web页面、窗口和文档。
DOM 标准被分为 3 个不同的部分:
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
哎呀,说了那么久,还不是一大堆feihua吗
2、DOM的作用
做网页的都知道,想要做一个动态页面,需要交互之类的,那这个时候,静态页面是无法满足的,因此需要调用DOM元素
看看DOM树长什么样

DOM基本功能:
① 查询某个元素
② 查询某个元素的祖先、兄弟以及后代元素
③ 获取、修改元素的属性
④ 获取、修改元素的内容
⑤ 创建、插入和删除元素
按照不同的类型来分,dom有不同的节点:文档节点、元素节点、属性节点、文本节点、注释节点

//haoutil在admui/js/app.js有定义,是window的一个属性

//

Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的新方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的XMLHttpRequest。使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

Ajax这个术语源自描述从基于 Web 的应用到基于数据的应用。
Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
使用 JavaScript 向服务器提出请求并处理响应而不阻塞用户核心对象XMLHttpRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。
Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
AJAX 工作原理
AJAX 工作原理
Ajax可使因特网应用程序更小、更快,更友好。
Ajax 是一种独立于 Web 服务器软件的浏览器技术。 Ajax 基于下列 Web 标准:
JavaScript、XML、HTML与 CSS 在 Ajax 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。Ajax 应用程序独立于浏览器和平台。
Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。
不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。通过 Ajax,因特网应用程序可以变得更完善,更友好。
<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<title>蝴蝶教程(jc2182.com)</title>
<head>
<script type="text/javascript" src="/jc_script/jQuery/jquery-1.12.4.min.js"></script>
<script>
$(document).ready(function () {
$("button").click(function(){
$.ajax({
url:"/jc_script/jqAjax/demo_test.txt",
success:function(result){
$("#div1").html(result);
}
});
});
});
</script>
</head>
<body>
<div id="div1">
<h2>让jQuery AJAX更改此文本 </h2>
</div>
<button>获取外部内容</button>
</body>
</html>
运行结果如下:

$.ajax()详解见https://www.cnblogs.com/chengeng/p/11711958.html

$(function(){
$('#send').click(function(){
$.ajax({
type: "GET",
url: "test.json",
data: {username:$("#username").val(), content:$("#content").val()},
dataType: "json",
success: function(data){
$('#resText').empty();   //清空resText里面的所有内容
var html = ''; 
$.each(data, function(commentIndex, comment){
html += '<div class="comment"><h6>' + comment['username']
+ ':</h6><p class="para"' + comment['content']
+ '</p></div>';
});
$('#resText').html(html);
}
});
});
});

$只是一个普通字符,由于jQuery的广泛应用,$被当作jQuery的标识符。
在jquery源代码里是定义windows.$=window.jQuery=jQuery;
所以你要用其他的名字就是jq=jQuery;就可以了

Mars3d widget 学习记录(二)index.html相关推荐

  1. HTML学习记录二:html标签(五):超链接标签

    HTML学习记录二:html标签(五):超链接标签 一.超链接标签写法 二.超链接标签的属性 三.超链接的锚点用法 四.链接分类 一.超链接标签写法 在 HTML 标签中, 标签用于定义超链接,作用是 ...

  2. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  3. Android动画学习记录二(属性动画、估值器和插值器)

    Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) Android动画学习记录二(属性动画.估值期和插值器) 一.补间动画缺陷 二.属性 ...

  4. 大数据之spark学习记录二: Spark的安装与上手

    大数据之spark学习记录二: Spark的安装与上手 文章目录 大数据之spark学习记录二: Spark的安装与上手 Spark安装 本地模式 Standalone 模式 基本配置 步骤1: 复制 ...

  5. [大数据技术与应用省赛学习记录二]——模块一(HADOOP完全分布式集群搭建)

    **在操作前,先梳理一下HADOOP完全分布式需要做些什么,不然像无头的苍蝇一样,永远不知道做什么.因为我本人比赛是一台服务器Centos 7,与三台客户端Ubuntu 18.04,所以以物理机的角度 ...

  6. Openzeppelin学习记录二:utils模块(SafeMath.sol+SafeCast.sol)

    Openzeppelin学习记录一:access模块(AccessControl.sol+Ownable.sol) Openzeppelin学习记录 2.Utils 2.1 Math 2.2 Safe ...

  7. UE4 学习记录二 给角色添加骨架,皮肤,及运动动画

    这只是用来记录我学习UE4过程的,可能帮不到你,先说声抱歉.为了防止误导他人,请勿转载,请勿转载,请勿转载. 本文的主题是给角色添加骨架.皮肤.运动动动画.总章目录(https://blog.csdn ...

  8. 高可用mongodb集群的学习记录(二mongodb主从配置)

    二mongodb主从配置 在之前我们使用mysql数据库或者redis时大家广泛用到,采用双机备份后主节点挂掉了后从节点可以接替主机继续服务.所以这种模式比单节点的高可用性要好很多. 1.环境准备 实 ...

  9. 项目管理概述学习记录(二)

    1.      为什么需要项目管理 项目管理可以带来下面的优势,也确保了项目可以按时按需完成: ⑴合理安排项目的进度,有效使用项目资源,确保项目能够按期完成,并降低项目成本.通过项目管理中的工作分解结 ...

最新文章

  1. mysql的or能去重吗_mysql条件查询中AND与OR联合使用的注意事项!
  2. 【深度学习】你心目中 idea 最惊艳的深度学习领域论文是哪篇?
  3. 9012年大厂面试题合集:Java技术栈为什么竞争越来越激烈?
  4. signature=07d53df34494bb51485d7f5988447796,android – Progaurd问题“警告:忽略一个匿名内部类的InnerClasses属性”...
  5. html修改图片宽度高度,HTML基础 img width height 设置显示图片的高度和宽度
  6. ASP.NET:关于.net中的runat
  7. tomcat本地部署war包的方式
  8. Python实现Excel与XML之间的转换
  9. 匿名内部类为什么访问外部类局部变量必须是final的?
  10. C语言编写学生管理系统
  11. java html网页生成pdf文件,html 网页生成pdf 文件
  12. python经纬度转换为平面坐标的算法_Python经纬度坐标转换为距离及角度的实现
  13. 从基础接口工具postman开始夯实软件测试基础(一)
  14. redis存储关系性数据库数据
  15. Warshall‘s algorithm 算法的实现及优化
  16. 一加7从服务器检索信息时出错,一加全能盒子(com.daxiaamu.op7mutools) - 7.8 - 应用 - 酷安...
  17. 虚拟华尔街的最新资讯 虚拟经济体的最新经济体
  18. oracle实验报告4:Oracle数据库模式对象管理(含实验小结)
  19. 服务器被植入挖矿木马的心酸过程
  20. 重磅:DDN携手潭州学院,全面开启区块链3.0——人才输出、应用落地时代!

热门文章

  1. jacob实现文档转换
  2. 软测-测开面试题集合(一、软测知识篇)
  3. C#解决串口通信中接收数据时延迟处理与缓存处理的方法
  4. Linux服务器上部署springboot服务并测试
  5. EasyRTSPServer视频/RTSP服务/摄像机模拟器/安防视频服务器调用流程说明
  6. GitHub TOML
  7. 基于内容的推荐算法详解+问题思考
  8. 如何把sql查询出来的结果当做另一个sql的条件查询
  9. python cv.calcHist()
  10. 新垣结衣夫妇的baby长啥样,用 BabyGAN 预测试试