js代码

require.js的用法

北城以北 提交于 2020-03-03 00:15:55
一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。 1 <script src="1.js"></script> 2 <script src="2.js"></script> 3 <script src="3.js"></script> 4 <script src="4.js"></script> 5 <script src="5.js"></script> 6 <script src="6.js"></script> 这段代码依次加载多个js文件。 这样的写法有很大的缺点。首先,加载的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长;其次,由于js文件之间存在依赖关系,因此必须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难。 require.js的诞生,就是为了解决这两个问题:   (1)实现js文件的异步加载,避免网页失去响应;   (2)管理模块之间的依赖性,便于代码的编写和维护。 二、require.js的加载 使用require.js的第一步,是先去官方网站 下载 最新版本。 下载后

js异步处理(一)——理解异步

霸气de小男生 提交于 2020-03-03 00:14:50
简书地址:http://www.jianshu.com/p/f4abe8c4fc2f 我对异步的好奇心起于学习Promise时老是一知半解,最近在看《你所不知道的js(中)》,书中对异步这部分的讲解还是很到位的,所以结合自己的理解整理一下相关知识点。 本文将从是什么、为什么、怎么样这三步式来讲这个问题 一、什么是异步? 我们一般喜欢把异步和同步、并行拿出来比较,我以前的理解总是很模糊,总是生硬地记着“同步就是排队执行,异步就是一起执行”,现在一看,当初简直就是傻,所以我们第一步先把这三个概念搞清楚,我不太喜欢看网上有些博客里很含糊地说“xxxx是同步,xxxx是异步”,还有举什么通俗的例子,其实对不懂的人来说还是懵逼。 首先我们要知道这一切的根源都是“Javascript是单线程”,也就是一次只能做一件事,那么为什么是单线程呢?因为js渲染在浏览器上,包含了许多与用户的交互,如果是多线程,那么试想一个场景:一个线程在某个DOM上添加内容,而另一个线程删除这个DOM,那么浏览器要如何反应呢?这就乱套了。 单线程下所有的任务都是需要排队的,而这些任务分为两种:同步任务和异步任务,同步任务就是在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程

JS 监听浏览器各个标签间的切换

蹲街弑〆低调 提交于 2020-03-02 22:57:27
以前看到过一些网页,在标签切换到其它地址时,网页上的标题上会发生变化,一直不知道这个是怎么做的,最近查了一些资料才发现有一个 visibilitychange 事件就可以搞定,这里将介绍一下页面可见性(Page Visibility)API的简单应用。 visibilitychange事件介绍 简单的说,当用户最小化网页或移动到另一个标签时,API会发送 visibilitychange 有关该网页的可见性的事件。你可以检测到该事件并执行一些操作或行为。例如:标签页隐藏的时候停止播放音乐视频、停止一些不必要的轮询,还有停止一些诸如轮播等循环动画效果等等。这些可以节省服务器和本地的开销。 用例 网站有一个图片轮播,不应前进到下一张幻灯片,除非用户正在查看该页面。 显示信息仪表板的应用程序不希望在页面不可见时轮询服务器以进行更新。 网页要检测其是否正在进行预渲染,以便其可以准确计算网页浏览量。 以前开发人员往往在客串上注册 onblur 和 onfocus 来检测页面是不是活动页面,但它不会告诉您页面对用户是隐藏的。Page Visibility API 解决了这个问题。 浏览器兼容性 这个事件已经得到现代浏览器广泛的支持,不过一些老版本的浏览器需要加相应的前缀。 Chrome (Webkit) Firefox (Gecko) Internet Explorer Opera

js获取计算机操作系统版本

孤街浪徒 提交于 2020-03-02 22:53:13
如题,想要获取当先计算机的操作系统和版本号的话,可以用如下方法。 首先,创建osversion.js文件,文件里面的代码如下 1 var osData = [ 2 { name: 'Windows 2000', group: 'windows_server', identifier: 'Windows NT 5.0', version: '5.0' }, 3 { name: 'Windows XP', group: 'windows', identifier: 'Windows NT 5.1', version: '5.1' }, 4 { name: 'Windows 2003', group: 'windows_server', identifier: 'Windows NT 5.2', version: '5.2' }, 5 { name: 'Windows Vista', group: 'windows', identifier: 'Windows NT 6.0', version: '6.0' }, 6 { name: 'Windows 7', group: 'windows', identifier: 'Windows NT 6.1', version: '7.0' }, 7 { name: 'Windows 8', group: 'windows',

JS错误类型的学习

為{幸葍}努か 提交于 2020-03-02 19:29:49
(1)SyntaxError SyntaxError是解析代码时发生的语法错误 // 变量名错误 var 1a; // 缺少括号 console.log 'hello'); ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ (2)ReferenceError ReferenceError是引用一个不存在的变量时发生的错误。 unknownVariable // ReferenceError: unknownVariable is not defined ‍ ‍ 另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。 console.log() = 1 // ReferenceError: Invalid left-hand side in assignment this = 1 // ReferenceError: Invalid left-hand side in assignment 上面代码对函数console.log的运行结果和this赋值,结果都引发了ReferenceError错误 (3)RangeError RangeError是当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。 new Array(-1) // RangeError:

【DWR系列01】-DWR简介及入门例子

扶醉桌前 提交于 2020-03-02 14:41:13
/*--> */ /*--> */ 一、DWR简介    dwr 是一个 Ajax 框架,官方网站: http://directwebremoting.org/dwr/ ,最新版本 3.0.1 ,要求 jdk1.6 及以上。   如下图所示,可以通过DWR来调用Java方法,并通过DWR封装的工具类来对页面元素进行简单处理:   上面的展示是对Ajax的封装,简化了用户的操作,当然最常用的还是逆向Ajax(需要 DWR2.0 及以上版本),就是俗称的服务器端推送:   逆向Ajax相对比较难一点,下面先展示js调用Java方法的例子。 二、DWR示例-js调用Java方法 2.1 创建Web项目   创建 Web 项目,并将 dwr-3.0.1-RELEASE.jar 和 commons-logging-1.2.jar 放入 WEB-INF/lib 下, dwr-3.0.1-RELEASE.jar 是DWR必须要的jar包,最新版本为 3.0.1-RELEASE ,它依赖 commons-logging-1.2.jar 日志包。最终项目结构如下:   若使用Maven,则Maven坐标如下: <dependency> <groupId>org.directwebremoting</groupId> <artifactId>dwr</artifactId> <version>3.0

DWR组件——基于远程过程调用实现Ajax

醉酒当歌 提交于 2020-03-02 14:36:19
转载请注明原文地址: http://www.cnblogs.com/ygj0930/p/6686115.html 一:DWR的用途 DWR(Direct Web Remoting)是一个Web远程调用框架,会根据java类动态生成javascript代码。 二:DWR实现Ajax的原理 DWR是基于远程过程调用的组件,可以在浏览器端远程调用服务端的业务函数,并获取返回结果。而我们知道,浏览器端是不能直接运行Java代码的,但是可以运行JavaScript代码。DWR的作用就是:把服务端的业务函数转化成JS函数,然后在页面导入js文件,像使用普通JS函数一样调用。而页面在触发该函数时,就向服务端发出请求,服务器根据转换映射关系调用相应业务函数,并把结果返回个页面端的JS函数调用处。这样没有引发页面跳转,所以也是Ajax。 三:DWR使用步骤 ( 1 )下载 dwr.jar (核心包)、 commons-logging-1.0.4.jar (依赖包),并放置在web项目WEB-INF/lib下面。 下载地址: http://download.csdn.net/detail/qq_28745795/9847205 ( 2 )在web.xml中配置 DWR组件, DWR相当于 是一个 servlet ; <servlet> <servlet-name>MyDWR</servlet-name

DWR组件——基于远程过程调用实现Ajax

心已入冬 提交于 2020-03-02 14:36:02
一:DWR的用途 DWR(Direct Web Remoting)是一个Web远程调用框架,会根据java类动态生成javascript代码。 二:DWR实现Ajax的原理 DWR是基于远程过程调用的组件,可以在浏览器端远程调用服务端的业务函数,并获取返回结果。而我们知道,浏览器端是不能直接运行Java代码的,但是可以运行JavaScript代码。DWR的作用就是:把服务端的业务函数转化成JS函数,然后在页面导入js文件,像使用普通JS函数一样调用。而页面在触发该函数时,就向服务端发出请求,服务器根据转换映射关系调用相应业务函数,并把结果返回个页面端的JS函数调用处。这样没有引发页面跳转,所以也是Ajax。 三:DWR使用步骤 ( 1 )下载 dwr.jar (核心包)、 commons-logging-1.0.4.jar (依赖包),并放置在web项目WEB-INF/lib下面。 下载地址: http://download.csdn.net/detail/qq_28745795/9847205 ( 2 )在web.xml中配置 DWR组件, DWR相当于 是一个 servlet ; <servlet> <servlet-name>MyDWR</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet

pageoffice 实现 word 文件 数据区域(书签)响应事件

安稳与你 提交于 2020-03-02 05:20:53
一、核心代码 poCtrl.setJsFunction_OnWordDataRegionClick("OnWordDataRegionClick()"); document.getElementById("PageOfficeCtrl1").ShowHtmlModalDialog(URL,Arguments,Features ); document.getElementById("PageOfficeCtrl1").ShowHtmlModelessDialog(URL,Arguments,Features ); 二、具体实现过程 具体实现过程 1.官网 http://www.zhuozhengsoft.com/dowm/ 下载集成文件,引入jar包,配置web.xml 2.在父页面index.jsp(需要打开文档的页面)放一个a标签或者button 写a标签之前先引入pageoffice需要的js文件(js文件的路径是项目的根目录下) <script type="text/javascript" src="/jquery.min.js"></script> <script type="text/javascript" src="/pageoffice.js" id="po_js_main"></script> 然后添加a标签 <a href="javascript

问 JS中(function(){xxx})(); 这种写法是什么意思?

ε祈祈猫儿з 提交于 2020-03-02 03:17:30
自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。 作用:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函数包装内,那么外部就不能访问,除非你允许(变量前加上window,这样该函数或变量就成为全局)。各JavaScript库的代码也基本是这种组织形式。 总结一下,执行函数的作用主要为 匿名 和 自动执行 ,代码在被解释时就已经在运行了。 其他写法 (function () { /* code */ } ()); !function () { /* code */ } (); ~function () { /* code */ } (); -function () { /* code */ } (); +function () { /* code */ } (); 来源: oschina 链接: https://my.oschina.net/u/2444023/blog/753390