JS一些碎知识点

一些js基本知识点

Doctype 浏览器渲染模式

  • 渲染模式发展历史

在多年以前(IE6诞生以前),各浏览器都处于各自比较封闭的发展中(基本没有兼容性可谈)。随着WEB的发展,兼容性问题的解决越来越显得迫切,随即,各浏览器厂商发布了按照标准模式(遵循各厂商制定的统一标准)工作的浏览器,比如IE6就是其中之一。但是考虑到以前建设的网站并不支持标准模式,所以各浏览器在加入标准模式的同时也保留了混杂模式(即以前那种未按照统一标准工作的模式,也叫怪异模式)。

'

  • 标准模式(不兼容之前的语法)

    • html 4.0

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

    • xhtml 1.0

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    • html5

      <!DOCTYPE html>

    • P.S. 细心的你可以看出随着html版本的发展,标准模式的写法也在变化着

  • 怪异模式 / 混杂模式

    • 很简单,将开头标准模式的声明去掉即可

    • IE6的怪异模式,有个新的盒模型,border和padding都属于宽高的范畴

label

  • label中有一个for属性,可以将该label和一个input绑定,当我们点击该label的文字时,input也回聚焦

  • for 属性 — >  js中表示htmlFor

<label for="input">User:</label><input id="input" type="text" name="user" value="" placeholder="请输入用户名" />

 

图片预加载

  • 假设这样一种需求,在文档加载完毕后的某个时刻,可能几秒后,可能几分钟后,也可能半小时后,我们要通过js动态插入一张10M的大图片?

  • 会产生这样的问题?图片太大,网速又不快,所以图片加载需要很长时间,所以导致页面上的那个图片只呈现了部分,甚至没有呈现,一片空白,形成了极其差的用户体验。

  • 如何解决呢?那就是图片预加载,在图片还没动态插入之前,我们就创造img节点,并为之设置src,在设置src后,浏览器就会开始下载src上的资源,然后在我们需要的时候即可瞬间插入文档

  • 启发?在请求的资源需要加载很长时间的情况下,我们可以预加载,在需要使用的时候,直接用就可以,极大提高了用户体验

封装 getElementsByClassName(); IE8及以下不兼容

  • 类名、id名不像js标识符命名那么规范,尽量别用特殊字符就行

  • js标识符规范,由字母,数字,下划线,$ 组成,但不能以数字开头

// 封装js中的getElenmentsByClassName();Document.prototype.getByClassName = function (className) {var allEle = document.getElementsByTagName('*');var retArr = {length: 0,push: Array.prototype.push};var len = allEle.length;var regBlank = /^\s|\s$/g;for(var i = 0; i < len; i++) {var strForClass = allEle[i].classNameallEle[i].className && allEle[i].className.replace(regBlank, '').indexOf(className) !== -1 && retArr.push(allEle[i]);}return retArr;}

 

 

Math对象

  • Math.sqrt()

    • 开方
  • Math.floor()

    • 向下取整
  • Math .ceil()

    • 向上取整
  • Math.random()

    • Math.random()  (0, 1)

    • eg: (5, 15) -》 Math.random() * 10 + 5

    • 先看区间 15 - 5 = 10

    • 再看起始点 5

    • 所以Math.random() * 10 + 5

文档碎片

  • 每次我们操作dom都会引起Reflow 或 Repaint,所以过多次的dom操作会降低性能

  • 但是我们可以将一些dom操作集合起来再操作dom,可减少Reflow或Repaint

  • 创建文档碎片

    • var frag = document.createDocumentFragment();

    • 该碎片具有正常dom节点的所有方法

 var frag = document.createDocumentFragment();var div = document.createElement('div');var span = document.createElement('span');frag.sppendChild(div);frag.appendChild(span);document.body.appendChild(frag);

 

cdn

  • 基站

  • CDN的全称是Content Delivery Network,即内容分发网络。

  • 原理:

简单地说,内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。
通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),
它位于网络的边缘,距用户仅有"一跳"(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。
这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。

转载于:https://www.cnblogs.com/Walker-lyl/p/7454304.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/369489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS基础知识(display和visibility、overflow、文档流)

9、显示与隐藏 u display属性&#xff1a; (1)none&#xff1a;隐藏元素&#xff0c;不会再占有页面的任何空间&#xff0c;即不会影响布局。 (2)inline&#xff1a;默认值。将元素[显示]为内联元素 &#xff08;与HTML元素本身无关系&#xff09; (3)block&#xff1a…

浏览器滚动条样式更改

/* webkit内核浏览器 */::-webkit-scrollbar { width: 8px; }::-webkit-scrollbar-button { width: 8px; height: 5px; }::-webkit-scrollbar-track { background-color: #ddd; border-radius: 0px; }::-webkit-scrollbar-thumb { background: #999; border-radius: 0px; }::-w…

最受欢迎的Java环境

该职位将是即将发布的系列文章中的第一篇。 我们从所使用的环境开始&#xff1a;如果您感兴趣的是最受欢迎的JVM供应商或JVM版本&#xff0c;那么32bit是比64bit更流行的体系结构&#xff0c;还是Windows 8比Windows XP更流行的体系结构-这些都将在我们的文章中介绍。 在下一个…

爬空气质量MySQL,mysql

Flask 定了2中上下文&#xff0c;来实现机遇线程协程的&#xff0c;wsgi服务的请求(request、session)和存储(g&#xff0c;current_app )过程&#xff0c;通过栈来完成不同线程和协程的上下文切换&#xff0c;在与celery相结合处理异步任务时&#xff0c;需要保证异步任务在同…

使用宏实现透视表部分功能,将AB列数据合并统计.

功能:1.筛选B列;2.将A列中的值按照筛选后的结果进行合计. 这个特殊点是按照月日进行筛选的. Sub count_a() Dim sh As Worksheet Set sh ActiveSheet Range("C2:D" & [D65536].End(3).Row).Clear For line_b 2 To [B65536].End(3).Row If Len(Cells(line_b, &q…

HTML基础知识(常见元素、列表、链接元素、图片元素)

1、HTML有关概念 全称: Hyper Text Markup Language&#xff08;超文本标记语言&#xff09; 其文件扩展名为“.html”或“.htm” * 超文本 - 在普通的文本基础上&#xff0c;添加超链接、图片、音频或视频等 * 标记 - 标记就是HTML中的标签(元素)&#xff0c;特点:<a> …

使用Google Guava的订购API

我们一直在使用Google的Guava库做更多的事情-多么出色的库&#xff01; 我们用于它的最新内容是为我们的域对象整理比较器。 就是这样。 使用Apache Isis的JDO Objectstore &#xff0c;使您的类实现java.lang.Comparable &#xff0c;并对集合使用SortedSet是一个好习惯。 您可…

权限和ACL练习题

1、在/testdir/dir里创建的新文件自动属于g1组&#xff0c;组 g2的成员如&#xff1a;alice能对这些新文件有读写权限&#xff0c;组g3 的成员如&#xff1a;tom只能对新文件有读权限&#xff0c;其它用户&#xff08;不 属于g1,g2,g3&#xff09;不能访问这个文件夹。 前期准备…

33、求按从小到大的顺序的第N个丑数

一、题目 把只包含因子2、3和5的数称作丑数&#xff08;Ugly Number&#xff09;。例如6、8都是丑数&#xff0c;但14不是&#xff0c;因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 二、解法 1 public class Solution {2 public int …

CSS3的过渡和转换

CSS3的过渡和转换 1.过渡 什么是过渡呢&#xff1f;过渡通俗的来说就是从一个样式到另一个样式的逐渐转换改变的效果。 过渡的属性&#xff1a; 属性 描述csstransition简写属性&#xff0c;用于在一个属性中设置4个过渡属性3transition-property规定应用过渡的css属性的名称…

zookeeper选举

什么时候开始进行选举 1.服务器初始化启动的时候2.服务器运行期间连接不上leader的时候 初始化选举过程 进行leader选举至少需要两台服务器&#xff0c;我们这里举例为5台服务器&#xff08;1,2,3,4,5&#xff09;1.启动服务器1&#xff0c;第一次投票都先投给自己[1,0]。投票内…

Java,如果这是一个更好的世界

只是梦想着有一个更好的世界&#xff0c;在该世界中&#xff0c;Java平台中的一些旧错误已得到纠正&#xff0c;而某些令人敬畏的缺失功能也已实现。 不要误会我的意思。 我认为Java很棒。 但是它仍然存在一些问题&#xff0c;就像其他平台一样。 我希望没有这些特定的命令&…

参数到不进oracle,Oracle对于启动参数检查不严格

偶然发现Oracle对于pfile启动参数的检查并不严格。比如修改参数文件如下&#xff1a;[oracleyans1 ~]$ vi initprimary.oraprimary.__db_cache_size1644167168primary.__java_pool_size16777216primary.__large_pool_size16777216...*.sga_target2147483648*.standby_file_mana…

使用PLSQL-Developer导出Oracle表及数据pdf版

《使用PLSQL-Developer导出Oracle表及数据pdf版》下载地址&#xff1a; 网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731340.html

C 语言实例 - 使用结构体(struct)

C 语言实例 - 使用结构体&#xff08;struct&#xff09;C 语言实例 C 语言实例 使用结构体&#xff08;struct&#xff09;存储学生信息。 实例 #include <stdio.h> struct student {char name[50];int roll;float marks; } s;int main() {printf("输入信息:\n&quo…

oracle10g的rat模拟,Oracle 10g Logminer 研究及测试

LogMiner提供了一个处理重做日志文件并将其内容翻译成代表对数据库的逻辑操作的SQL语句的过程。LogMiner运行在Oracle版本8.1或者更高版本中。一&#xff0c;如何使用Logminer:先要安装logminer的两个包&#xff1b;以SYS用户运行下面两个脚本,其中第一个脚本dbmslm.sql用来创建…

JavaEE概念简介

这篇文章旨在澄清J2EE范例中使用的首字母缩写词和概念。 J2EE代表Java to Platform&#xff0c;Entreprise Edition。 它使创建模块化Java应用程序成为可能&#xff0c;并将其部署在应用程序服务器上。 它依赖于Java SE&#xff0c;Java SE是一组Java库的核心&#xff0c;所有J…

编程新手的疑惑:代码循环如何画出一个简单的三角形

对一个编程新手来说&#xff0c;最先知道了解的莫过于代码执行的三种结构&#xff0c;顺序结构、循环结构和选择结构。 其中个人认为相对难以理解的是循环结构&#xff0c;而针对循环结构的练习题最多的就是循环画出一种简单图形&#xff0c;比如三角形。 当初我在学习写三角形…

解析PHP跳出循环的方法以及continue、break、exit的区别介绍

PHP中的循环结构大致有for循环&#xff0c;while循环&#xff0c;do{} while 循环以及foreach循环几种&#xff0c;不管哪种循环中&#xff0c;在PHP中跳出循环大致有这么几种方式&#xff1a; 代码&#xff1a; <?php$i 1;while (true) { // 这里看上去这个循环会一直执行…

js php 数据类型判断,【js基础】变量类型判断

类型判断方法比较&#xff1a;如果需要想详细了解&#xff0c;请看下文:注&#xff1a;原封不动复制备份&#xff0c;防止删帖在JavaScript中&#xff0c;有5种基本数据类型和1种复杂数据类型&#xff0c;基本数据类型有&#xff1a;Undefined, Null, Boolean, Number和String&…