工作这么多年,到现在为止对这本书都没有一个系统的知识点记录,这次想从头读一遍这一本JavaScript高级程序设计【第4版】,并把重要的知识点记录下来,同时加上自己的见解,这也是我第一次在掘金上记录分享读书笔记...浏览器会立即开始下载脚本,这个动作是异步的,不能阻止页面其他动作。...需要注意的是,defer属性的支持是从IE4、Firefox3.5、Safari5和Chrome7开始的,其他浏览器则会忽略这个属性,因此,最好还是把要推迟执行的脚本放在页面底部比较好。...一般情况下始终为text/javascript,如果值为moddule,则代码会被当成ES6模块,只有这时候,代码中才能出现import和export关键字。...noscript标签是在不支持js的浏览器中才生效的,如果支持,则看不到该标签内的内容。
Stackoverflow是广大程序猿赖以生存的工具之一,在stackoverflow搜索技术问题得到答案的质量和正确率远远高于其他平台。...所以我下决心想办法自己解决这个令人头疼问题。 解决思路 首先我们找到Stackoverflow无法正常使用的原因。...这是完全可以的,只要我们在stackoverflow网页加载的过程中将google jquery的script标签替换成其他CDN的应该就可以了。...首先我们需要设置脚本运行的时间点,我们希望在google的jquery script刚被添加到DOM中时就替换它,但是在查阅了大量的资料后我发现这个做不到(如果有人知道怎么做,欢迎留言),所以我们只能选择在尽量早的时间点去执行脚本...我们打开 stackoverflow.com,可以看到jquery已经成功下载,网页头部的红色提示信息也消失了,网站可以正常使用了。
前言 只有光头才能变强。...onLoaded onInteractive onComplete onException XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。...有,IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到 当然了,我们一般使用jquery封装好的ajax方法,那就没有那么麻烦了。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数...,在回调函数中处理服务器返回的数据,【JSONP】 在后端上配置可跨域【CORS方式】 前端ajax请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端【代理方式】 AJAX
前言 只有光头才能变强。...和Firefox中创建方式有没有不同。...有,IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到 当然了,我们一般使用jquery封装好的ajax方法,那就没有那么麻烦了。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数...,在回调函数中处理服务器返回的数据,【JSONP】 在后端上配置可跨域【CORS方式】 前端ajax请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端【代理方式
只要确保外部脚本在window。Onload之前下载执行就可以保持执行顺序。 运行结果: ?...缺点:需要修改外部脚本,对第三方库不适用。 多个脚本按序执行: 正常引入脚本: 运行结果: ? ? 采用XHR eval: 运行结果: ? ? 由于脚本没有按顺序执行,出现未定义的错误。...代码: /* 数组queuedScripts存储执行队列中的脚本,每个脚本是拥有三个属性的对象: response: XHR响应 onload: 脚本加载后触发的函数 bOrder: 如果该脚本需要依赖其他脚本按顺序执行...由于document.write Script Tag在并行下载脚本时会阻塞其他资源,而Script Dom Element则只在FireFox(实际测试FireFox并不行,可能是版本原因)和Opeare...}else{ //当为其他浏览器时,通过document write Script保证脚本执行顺序。
前面我介绍可以通过 ThickBox 这个 jQuery 插件实现弹出框效果,但是使用 ThickBox 需要事先导入 jQuery JS 文件,所以如果仅仅需要弹出框效果的话,有点过于臃肿,所以这个时候我推荐你使用...,TinyBox 这个轻量级的 JavaScript 脚本。...TinyBox 是一个轻量级并且独立的模态窗口脚本,该脚本只有 3.5KB,不包括任何内置的幻灯片功能,但是可以显示任何的 AJAX 和 HTML 内容,还支持图片,并且能够自动隐藏,可以通过简单的 CSS...TinyBox 已经在 Firefox 2/3, IE 6/7/8, Opera, Safari 和 Chrome 中测试过。...第二个是设置是否为 AJAX。第三个是宽度,0 为自动。第四个是高度,0 为自动。第五个是是否设置隐藏,第六个则是设置是否自动隐藏的时间。 演示 + 下载
"> 同步模式:又称阻塞模式,会阻止浏览器的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作。...前者是在document已经解析完成,页面中的dom元素可用,但是页面中的图片,视频,音频等资源未加载完,作用同jQuery中的ready事件;后者的区别在于页面所有资源全部加载完毕。...ajax请求成功后设置script.text为请求成功后返回的responseText。 //获取XMLHttpRequest对象,考虑兼容性。...defer属声明脚本中将不会有document.write和dom修改。浏览器会并行下载其他有defer属性的script。而不会阻塞页面后续处理。...三:延迟加载 有些JS代码在某些情况在需要使用,并不是页面初始化的时候就要用到。延迟加载就是为了解决这个问题。
当然有一些cdn站点提供诸如jquery之类的服务,在jQuery官方下载可以看到介绍,经我试验下来微软的ajax.aspnetcdn.com响应速度最快,优点有很多,速度和稳定性咱就不提了,更重要的是对浏览者来说他们可能已经请求过该脚本并放在缓存中了...Web Worker 部分浏览器支持 web worker 功能,可以创建一个 worker 在后台工作,包括加载外部脚本。...并且,在 Firefox/Opera 下,通过这种方式插入多个 js 脚本,浏览器会并行下载这些 js (同时下载几个取决于浏览器的并行连接数),同时还能保证它们的执行顺序与它们被插入页面的顺序相同。...js ,并且下载完成后正常触发 onload 事件,但是它们将不会执行这些脚本。...另外,”text/cache” 这种 trick 在 Firefox/Opera 下是不能工作的,因为这两种浏览器会拒绝下载它们不认识的 type 的 script,这样也就无法“预加载”了。
jQuery因其简洁的语法和跨浏览器的兼容性特点,极大地简化了开发人员对DOM对象、事件处理、动画效果和Ajax的操作,目前已经从其他框架中脱颖而出,成为Web开发人员的最佳选择。...jQuery框架特点:jQuery是一个轻量级的脚本,其代码非常小巧;语法简洁易懂,学习速度快,文档丰富;支持CSS1~css3定义的属性和选择器;跨浏览器,支持的浏览器包括IE、FireFox、Chrome...如果需要下载其他版本的jQuery,只需要更改上述地址中的版本号,并使用IE浏览器即可快速下载。...1、创建项目 在Eclipse中创建一个名称为chapterl5的Web项目,在项目的WebContent目录下创建一个名称为js的文件夹,并将下载的jquery-1.11.3.min.js文件放置在文件夹中...对话框,这说明jQuery已经可以正常使用。 在jQuery中符号的 使 用 最 为 频 繁 。 的使用最为频繁。的使用最为频繁。
一旦安装了这些,我们就可以在我们的代码中添加对这些脚本和 CSS 文件的引用: 脚本在这个文件中添加另一个收入行。...这允许我们通过传入行索引、列索引和值来在 Spread 中的工作表中设置值: sheet.setValue(newRowIndex, 1, "Revenue 8"); for (var c = 3;...重要提示:请记住,出于安全考虑,Chrome 不允许您打开本地文件,因此您需要使用 Firefox 等网络浏览器才能成功运行此代码。或者,从网站 URL 加载文件应该可以在任何浏览器中正常打开。.../2014-11-29/FileSaver.min.js"> 成功导出文件后,您可以在 Excel 中打开它,并查看文件与导入时的外观相同,只是现在我们添加了额外的收入行。
在最初几年中,JS和微软的几种脚本语言一决高下,带来的显著影响就是,网站要么在 Netscape 下工作正常,要么在 Internet Explorer 下(当时发布了其第三个版本)显示的不错,但不能两者兼顾...在这个时期中,只有两种主要的浏览器:微软的IE6--一种发布时难以置信但最终竟变为勒住互谅网脖子的行尸走肉的浏览器;以及 Mozilla 的 Firefox 。但是也有IE的其他版本在使用。...W3C 则在徒劳无益的追求语义化 Web,AJAX 取得了远大于 DHTML 的成功。...在长期的忽视后,AJAX带来了强烈需要的稳定性。AJAX 是一个巨大的成功,鼓舞了众多库致力于单页 web 应用的开发”。...短期内这种途径就被证明非常成功,jQuery 成为了主流框架;直到现在依然是,2017 年还是有很多网站还是基于它而非其他的框架开发。 这个框架到底提供了什么呢?
最近工作中遇到一个场景,商家在商家后台需要实时的获取到有没有新订单,有的话是几个;这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒;商家基本在PC上使用,各式浏览器都有:如...Google 的天才们使用一个称为“htmlfile”的 ActiveX 解决了在 IE 中的加载显示问题,并将这种方法用到了 gmail+gtalk 产品中。...在默认情况下,可以在 Jetty 6、Jetty 7、和 Jetty 8 中以及其他所有支持 Servlet 3.0 Specification 的服务中使用 CometD。 ?...服务器端需要确保当客户端不再工作时,释放为这个客户端分配的资源,防止内存泄漏。因此需要一种机制使双方知道双方都在正常运行。...如果客户端使用的是基于 AJAX 的长轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端的再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护的资源。
就类似生活中的去超市排队结账,正常情况下,一位收银员只能为一位顾客结账,其他顾客需要在后面排队等候。 为什么 JS 是单线程的?...比如,假定 JavaScript同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?...同步:只有前一个任务执行完毕,才能执行后一个任务 异步:当同步任务执行到某个 WebAPI 时,就会触发异步操作,此时浏览器会单独开线程去处理这些异步任务。...回调地狱,代码难以维护, 常常第一个的函数的输出是第二个函数的输入这种现象promise可以支持多个并发的请求,获取并发请求中的数据这个promise可以解决异步的问题,本身不能说promise是异步的...- 处理结果正常的话,调用resolve(处理结果值),将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去
对比同步来说,javascript本身是占用一个线程执行的,如果要以同步的方式发起请求,那就是让这个线程阻塞,等待这个网络请求发出去,然后请求回来,javascript才能接着执行。...异步的这种方式能够及时放开javascript脚本执行线程,在页面上,用户多次点击发起请求或者脚本操作都不会受到影响,是比较理想的。...AJAX实现原理 本质是浏览器底层与操作系统暴露出来的一个API,在浏览器中有一个XMLHttpRequest的构造函数,当我们用一些包如jQuery的ajax或者Axiso请求数据时,用的其实就是它的实例...readyState的变化均可以在onreadystatechange中捕获到。...,而且readyState的值也只有3中,且console.log('异步测试');这段代码在整个请求完成后才被得到执行,可见同步已将js执行阻塞。
最近工作中遇到一个场景,商家在商家后台需要实时的获取到有没有新订单,有的话是几个;这个需求类似与日常中使用QQ或者微信时的新信息提醒一样,只要有新信息就需要提醒;商家基本在PC上使用,各式浏览器都有:如...客户端打开一个到服务器端的 AJAX 请求然后等待响应;服务器端需要一些特定的功能来允许请求被挂起,只要一有事件发生,服务器端就会在挂起的请求中送回响应并关闭该请求。...在默认情况下,可以在 Jetty 6、Jetty 7、和 Jetty 8 中以及其他所有支持 Servlet 3.0 Specification 的服务中使用 CometD。 ?...服务器端需要确保当客户端不再工作时,释放为这个客户端分配的资源,防止内存泄漏。因此需要一种机制使双方知道双方都在正常运行。...如果客户端使用的是基于 AJAX 的长轮询方式;服务器端返回数据、关闭连接后,经过某个时限没有收到客户端的再次请求,会认为客户端不能正常工作,会释放为这个客户端分配、维护的资源。
,给浏览器端一个特殊的响应,这个特殊的响应要求浏览器去请求一个新的资源,整个过程中浏览器端会发出两次请求,且浏览器地址栏会改变为新资源的地址。...6.3 请求转发 Servlet接收到浏览器端请求后,进行一定的处理,先不进行响应,而是在服务器端内部“转发”给其他Servlet程序继续处理。...JavaScript是一种解释型的脚本语言,C、C++、Java等语言先编译后执行, 而JavaScript是在程序的运行过程中逐行进行解释。 ② 基于对象。...最后,同步 请求的最大缺点就是即使整个页面中只有一小部分内容发生改变我们也要刷新整个页 面。...当服务器正常响应请求后,响应信息会直接发送到AJAX中,AJAX可以根据服务器响应的内容做一些操作。 使用AJAX的异步请求基本上完美的解决了同步请求带来的问题。
onLoaded onInteractive onComplete onException XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。...有,IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到 当然了,我们一般使用jquery封装好的ajax方法,那就没有那么麻烦了。...所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数...,在回调函数中处理服务器返回的数据,【JSONP】 在后端上配置可跨域【CORS方式】 前端ajax请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端【代理方式】 AJAX...5、如果是使用jQuery,直接这样就可以了 $.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓存记录。 ----
在追求页面互动效果的时代,大家都想把页面效果做的美轮美奂,这一切都离不开前端技术脚本Javascript,而最近常被人用到的Javascript库文件则是jQuery。 ...jQuery的使用具体步骤如下: 一、调用库文件 使用jQuery必须链接jQuery的库文件,无论是压缩版还是正常版,必须至少在网页中链接一个,如: Jquery插件 除此之外,还有一种特殊情况,就是应用其他同学已经做好的jQuery插件效果。...比如jQuery官网制作的插件jQuery,在使用它时不仅要链接库文件,还要链接UI文件以及UI的CSS文件,如: ajax.googleapis.com/ajax.../ajax/libs/jqueryui/1.8/jquery-ui.min.js"> 经过这几部的操作,jQuery效果才能真正被引用到网页文件中起到作用。
工作原理 Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。...并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做, 只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。...保证这些方法一定要是大写字母,否则其他一些浏览器(比如FireFox)可能无法处理这个请求。更多关于HTTP的请求方法,可以查看 W3C 文档哈。 第二个参数是你要发送的URL。...在下面的例子中,我们通过检查响应码 200 OK 区别对待成功和不成功的AJAX调用。 if (httpRequest.status === 200) { // Perfect!...Note: 如果你向一个代码片段发送请求,将返回XML,而不是静态XML文件,在IE浏览器上则必须要设置响应头才能正常工作。