js代码

全栈工程师之路-Node.js

左心房为你撑大大i 提交于 2019-12-09 13:56:12
全栈工程师之路-Node.js 高可用架构专用 原文[高可用架构] https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=405001493&idx=1&sn=f0ecab9b31bad83fb065ac37bb728245&scene=1&srcid=0324iTRH12WbXL5VDxXnEhH8&key=710a5d99946419d938a0ffc16a3c72118eefbe33f3f8312ed218bccbde126b60e818c8eb1068a9b07bdc8116a077b911&ascene=0&uin=NDIzMjM3MDk1&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.10.5+build(14F27)&version=11000006&pass_ticket=xdp3crkTJPuOH6ggUMKnwvfDGKEnMUvwC5V%2FdxlW%2FKdNO9R8zI1xsDFSR4ZJECUU 仔细的对比了一遍,感谢tim yang和庆丰校长的整理,非常严谨,比我讲的要好,另外感谢霍老板封我是StuQ明星讲师[呲牙][呲牙] 持续更新版本 仓库地址 https://github.com/i5ting/nodejs-fullstack 在线阅读 http:/

window.close(); 关闭浏览器窗口JS代码的分析总结

拥有回忆 提交于 2019-12-09 13:54:30
序号 关闭代码 需要确认 无任何作用 无需确认 1 window.close() IE7 firefox,chrome,safari Opera 2 window.opener=null; window.open('','_self'); window.close(); firefox IE7,Opera,chrome,safari 3 window.open('','_self'); window.close(); firefox IE7,Opera,chrome,safari 4 window.opener=null; window.close(); IE7 firefox,safari chrome,Opera 5 var opened=window.open('about:blank','_self'); opened.opener=null; opened.close(); firefox IE7,Opera,chrome,safari 6 var opened=window.open('about:blank','_self'); opened.close(); safari,firefox IE7,Opera,chrome,safari 用多种方式打开一个页面,然后用 window.close() 关闭它,在各浏览器下表现有所不同。如在地址栏中直接输入URL 时

【转】前端常见跨域解决方案(全)

拟墨画扇 提交于 2019-12-09 13:39:54
原文地址: https://segmentfault.com/a/1190000012469713 什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。 广义的跨域: 1.) 资源跳转: A链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。 什么是同源策略? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 常见跨域场景 URL 说明 是否允许通信 http://www.domain.com/a.js http://www.domain.com

微信浏览器中用js修改页面title

风格不统一 提交于 2019-12-09 13:33:31
普通的html页面中通过 document.title = 'new title'; 即可修改页面的title,但是在微信浏览器中这段代码是无效的,看了些别人的博客说是“由于微信浏览器只在页面首次加载时初始化了标题title,之后就没有再监听 window.title的change事件。所以这里修改了title后,立即创建一个请求,加载一个空的iframe,由于加载后立即就移除,也不会对页面造成影响,但这样微信浏览器上的title便刷新了。”修改方法如下: document.setTitle = function(t) { document.title = t; var i = document.createElement('iframe'); i.src = '//m.baidu.com/favicon.ico'; i.style.display = 'none'; i.onload = function() { setTimeout(function(){ i.remove(); }, 9) } document.body.appendChild(i); } setTimeout(function(){ document.setTitle('new title'); }, 1); 来源: CSDN 作者: 希文Gershwin 链接: https://blog.csdn.net

提高EXT js的加载速度的方法

柔情痞子 提交于 2019-12-09 13:26:57
我们知道,EXT的全部js是比较大的,一个ext-all-debug.js就达2m多,它的压缩版(去掉js中的换行及空格),也达600多k,这对于在网速不太快的时,下载js就得漫长的等待。 JOffice中的日历任务控件,js多达四五个,每个js大小都达70多k,尽管我们采用了后加载的方式,则当用户点击我的任务功能时,才下载该js,但这样仍然很慢,因为下载的js很慢 ,鉴于此,在互联网上使用类似Joffice类似的程序,速度会使很多开发商不敢选用ext作为开发技术。据本人当时参与移动一个内部采购平台的开发,就是因为其运行程序慢,遭到移动的终端用户的弃骂, 所以,要想用EXT来开发应用,需要解决其运行慢的特点。 我们可以从以下几种方法来提高应用程序的运行速度: 一.前期尽量少加载js. 这点在Joffice中有比较好的运用,采用的是由ScriptMgr.load方法来完成,加载完成后,其会在body中插入一个div,只要当前页面不被刷新,下次再访问该功能时,不需要再加载js Java代码 function $ImportJs(viewName,callback) { var b = document.getElementById(viewName+ '-hiden' ); if (b != null ) { var view = eval( 'new ' + viewName + '

js获取form表单所有数据

可紊 提交于 2019-12-09 13:23:52
代码如下: <script type="text/javascript"> // 获取指定form中的所有的<input>对象 function getElements(formId) { var form = document.getElementById(formId); if(form == null){ return false; } var elements = new Array(); var tagElements = form.getElementsByTagName('input'); for (var j = 0; j < tagElements.length; j++) { elements.push(tagElements[j]); } return elements; } // 获取单个input中的【name,value】数组 function inputSelector(element) { if (element.checked) return [ element.name, element.value ]; } function input(element) { switch (element.type.toLowerCase()) { case 'submit': case 'hidden': case 'password': case

Js apply方法详解

萝らか妹 提交于 2019-12-09 13:14:07
我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这里我做如下笔记,希望和大家分享.. 如有什么不对的或者说法不明确的地方希望读者多多提一些意见,以便共同提高.. 主要我是要解决一下几个问题: 1. apply和call的区别在哪里 2. 什么情况下用apply,什么情况下用call 3. apply的其他巧妙用法(一般在什么情况下可以使用apply) 我首先从网上查到关于apply和call的定义,然后用示例来解释这两个方法的意思和如何去用. apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数 obj:这个对象将代替Function类里this对象 args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.call(obj,[param1[,param2[,…[,paramN]]]]) obj:这个对象将代替Function类里this对象 params:这个是一个参数列表 1. apply示例: <script type="text/javascript"> /

JS 基础学习

我的梦境 提交于 2019-12-09 12:40:51
1.开发工具选择 开发工具推荐 visual studio code,为了能够右键运行代码,需要安装插件 CodeRunner。 关于运行:必须先保存,在运行,如果不保存运行不会成功; 2.快速入门 2.1 数组 声明数组: var arr = [] 即可,声明一个非空数组 var arr = [1,2,"hello",null]; 数组中的内容可以是任意的数据类型; 获取数组中的值:arr[i],其中 i 为数组元素对应的索引值,从 0 开始; 获取数组长度:直接调用 length 方法。例如获取数组 arr 的长度,直接写 arr.length即可,注意没有 ();另:可以根据 length 任意修改数组长度,比如原数组为 var arr = [1,2,3] 此时数组长度为 3 ,如果想改变其长度为 10,直接调用 arr.length = 10 即可,此时数组 arr 的长度即为 10; js 中的数组即使越界,但是不会报错,只是值会为 undefined 数组中的其他方法 方法名 方法描述 indexOf() 获取数组指定元素的索引位置 slice(i) 数组截取,如果 i 为3,就截取索引从 3 到数组结束作为新数组 slice(startIndex,endIndex) 数组截取,从 startIndex 下标开始,到 endIndex 下标结束,包含

H5游戏性能优化整理(cocos-js 3.16)

﹥>﹥吖頭↗ 提交于 2019-12-09 11:42:05
近期在一家公司负责H5游戏加载速度优化,这里把近期做的项目优化项做一个整理分享: html渲染流程 HTML解析过程:构建DOM树、构建CSSOM树、根据DOM树和CSSOM树构建render树、有了render树就开始布局Layout、最后绘制paint。 1、 构建DOM树 :   将HTML构建成一个DOM树,也就是构建节点,把所有的节点都构建出来。 2、 构建CSSOM :   解析css去构建CSSOM树。 3、 构建render树 : DOM已经构建好了,css也有了,浏览器就会根据这两个来构造render树。 4、 布局 :      当render树有了,通过render树,浏览器开始计算各个节点的位置和样式。 5、 绘制 :      遍历render树,在页面上绘制每个节点。 6、 重排reflow :  当render树绘制完成之后,比如JavaScript改变样式或添加节点,这时候render树就需要重新计算。 7、 重绘repaint :  重新绘制页面。 HTML整个解析过程看起来很简单,但是我们要知道解析过程中css、js和dom的加载顺序。我们都知道 HTML是自上往下解析 的,在解析过程中: 1、如果遇到link和style,那就就会去下载这些外部的css资源,但是 css跟DOM的构建是并行的 ,就是说不会阻塞DOM树的构建。 2、如果遇到

JS DOM中Ajax的使用

萝らか妹 提交于 2019-12-09 11:39:36
一、概念 全称:Asynchronors Javascript XML 异步JS数据交换格式。 【Asynchronous】:异步的,即在执⾏ AJAX 请求时不会阻塞后⾯代码的运⾏。 【JavaScript】:使⽤ JavaScript 实现浏览器与服务器之间的数据交互。 【XML】:⼀种数据结构,AJAX 创建之初在与服务器进⾏数据交换时,使⽤的数据结构就是 XML。但是现在已经慢慢被 JSON 数据结构所取代。 二、步骤 1. 创建 XMLHttpRequest 对象。 //1、:创建 XMLHttpRequest 对象。 let xhr = new XMLHttpRequest(); 考虑到浏览器版本的不同,做出简单的判断 let xhr; if(window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 浏览器执⾏代码 xhr = new XMLHttpRequest(); } else { // IE6, IE5 浏览器执⾏代码 xhr = new ActiveXObject( 'Microsoft.XMLHTTP' ); } 2. 打开连接。 格式: xhr.open(method, url, async); /** *method:数据接收方式,GET/POST *url:数据链接,JSON格式