chenogeの日志


  • 首页

  • 归档

  • 搜索

load和DOMContentLoaded

发表于 2019-04-24

load

当一个资源及其依赖资源已完成加载时,将触发load事件


DOMContentLoaded

当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完成加载。

注意:DOMContentLoaded 事件必须等待其所属script之前的样式表加载解析完成才会触发。

1
2
3
4
// css.php
<?php
sleep(3);
?>
1
2
3
4
5
6
7
8
<link rel="stylesheet" href="css.php">
<script>
document.addEventListener('DOMContentLoaded', function() {
console.log('3 seconds passed');
});
</script>
<!-- 同步 JavaScript 会暂停 DOM 的解析 -->
<!-- 如果将link置于script之后,就会立即打印 -->
阅读全文 »

MAC地址

发表于 2019-04-17

ARP广播

1、目标IP与自己在同一网段
  • arp高速缓存有目标IP的MAC地址:直接发送到该物理地址
  • arp高速缓存没有目标IP的MAC地址:发送ARP广播请求目标IP的MAC地址,缓存该MAC地址,然后发数据报到该MAC地址。
阅读全文 »

数组reduce

发表于 2019-04-08
1
arr.reduce(callback[, initialValue])
  • callback执行数组中每个值的函数,包含四个参数:
    • accumulator累计器,累计回调的返回值
      • 它是上一次调用回调时返回的累积值,或initialValue
    • currentValue数组中正在处理的元素
    • currentIndex数组中正在处理的当前元素的索引
      • 如果提供了initialValue,则起始索引号为0,否则为1
    • array调用reduce()的数组
  • initialValue作为第一次调用 callback函数时的第一个参数的值
    • 如果没有提供初始值,则将使用数组中的第一个元素
    • 在没有初始值的空数组上调用 reduce 将报错
阅读全文 »

数组并交差集

发表于 2019-04-08

现有两数组a = [1, 2, 3],b = [2, 4, 5],求a,b数组的并集,交集和差集

1
2
3
4
5
6
7
8
9
10
11
// 并集
let union = a.concat(b.filter(v => !a.includes(v)));
// [1,2,3,4,5]

// 交集
let intersection = a.filter(v => b.includes(v));
// [2]

// 差集
let difference = a.concat(b).filter(v => !a.includes(v) || !b.includes(v));
// [1,3,4,5]
阅读全文 »

javascript-sort

发表于 2019-04-08

一、语法

1
arr.sort([compareFunction])

如果没有指明 compareFunction ,元素会按照转换为字符串的诸个字符的Unicode位点进行排序。

如果指明 compareFunction ,数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:

  • 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前

  • 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变

    • 备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守
  • 如果 compareFunction(a, b) 大于 0 , a 会被排列到 b 之后


二、内部排序

V8 引擎 sort 函数只给出了两种排序分别是: InsertionSort 和QuickSort

  • 数组长度小于等于10的用插入排序 InsertionSort
  • 比10大的数组则使用快速排序 QuickSort
阅读全文 »

arg_PARAMETER和is_args

发表于 2019-04-03

$arg_PARAMETER

1
2
3
$arg_PARAMETER	#这个变量包含GET请求中,如果有变量PARAMETER时的值
$args #这个变量等于请求行中(GET请求)的参数,如:foo=123&bar=blahbla
$is_args #如果有args参数,这个变量等于"?",否则等于""(空值)
阅读全文 »

robots文件

发表于 2019-04-01

robots文件

Robots是站点与spider沟通的重要渠道,站点通过robots文件声明本网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分。仅当您的网站包含不希望被视频搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。

robots.txt文件往往放置于根目录下,包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL,or NL作为结束符),每一条记录的格式如下所示:

1
<field>:<optional space><value><optionalspace>
阅读全文 »

WheelEvent

发表于 2019-03-29

WheelEvent

WheelEvent DOM事件会在用户滚动鼠标滚轮或操作其它类似鼠标的设备时触发,继承了父接口MouseEvent、UIEvent、Event的属性。

  • WheelEvent.deltaX只读,返回double值,该值表示滚轮的横向滚动量。

  • WheelEvent.deltaY只读,返回double值,该值表示滚轮的纵向滚动量。

  • WheelEvent.deltaZ只读,返回double值,该值表示滚轮的z轴方向上的滚动量。

  • WheelEvent.deltaMode只读,返回unsigned long值,该值表示上述各delta的值的单位。

    该值及所表示的单位如下:

    | 常量 | 值 | 描述 |
    | ————— | —- | —————- |
    | DOM_DELTA_PIXEL | 0x00 | 滚动量单位为像素 |
    | DOM_DELTA_LINE | 0x01 | 滚动量单位为行 |
    | DOM_DELTA_PAGE | 0x02 | 滚动量单位为页 |

阅读全文 »

取消默认行为和阻止传播

发表于 2019-03-29

阻止传播

阻止捕获和冒泡阶段中当前事件的进一步传播

1
2
event.stopPropagation();
// event.cancelBubble = true

如果有多个相同类型事件的事件监听函数绑定到同一个元素,当该类型的事件触发时,它们会按照被添加的顺序执行。如果其中某个监听函数执行了 event.stopImmediatePropagation() 方法,则当前元素剩下的监听函数将不会被执行。

1
event.stopImmediatePropagation();


取消默认行为

通知 Web 浏览器不要执行与事件关联的默认动作

1
2
3
event.preventDefault();
// event.returnValue = false;
// javascript的return false只会阻止默认行为

注:如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。

阅读全文 »

window-open

发表于 2019-03-27
1
let windowObjectReference = window.open(strUrl, strWindowName, [strWindowFeatures]);
  • WindowObjectReference

    打开的新窗口对象的引用。如果调用失败,返回值会是 null 。如果父子窗口满足同源策略,你可以通过这个引用访问新窗口的属性或方法

  • strUrl

    新窗口需要载入的url地址。strUrl可以是web上的html页面也可以是图片文件或者其他任何浏览器支持的文件格式

  • strWindowName

    新窗口的名称。该字符串可以用来作为超链接 a或表单 form元素的目标属性值。字符串中不能含有空白字符。注意:strWindowName 并不是新窗口的标题

    • _blank - URL加载到一个新的窗口。这是默认
    • _parent - URL加载到父框架
    • _self - URL替换当前页面
    • _top - URL替换任何可加载的框架集
  • strWindowFeatures

    可选参数。是一个字符串值,这个值列出了将要打开的窗口的一些特性(窗口功能和工具栏) 。 字符串中不能包含任何空白字符,特性之间用逗号分隔开

1
2
myWindow=window.open('','','width=200,height=100');
window.open("http://www.runoob.com");
阅读全文 »
1…456…27

chenoge

一个程序猿和一支笔的故事

267 日志
438 标签
© 2020 chenoge
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4