一些调试工具 说起手机端调试,相比大家都不陌生。 由于手机浏览器没有像PC端浏览器一样有开发调试工具,所以一般手机端的调试都要借助于电脑,现在的调试方式通常有以下几种。 直接在chrome, firefox等开启模拟器调试简单直接,还能模拟网络等,但是仍然无法100%还原手机的真实情况。 实现一套pc调试面板 采用这种实现方式有weinre,weinre很早前就比较流行了,使用也比较广泛,运行后会在PC上生成一个像chrome开发工具一样的调试器。能对手机进行远程调试,能操作DOM,打印console输出等
首先编写一个 test.js ,然后使用 export default 暴露一个对象,然后在 main.js 中导入使用。
上一篇文章我们讲了http2的多路复用,今天继续聊一聊http2的消息推送,在http1.x时代,服务器是不能向客户端推送消息的,而在http2里面这成为了一个标准。
上一篇我们介绍了开发Webrtc建立P2P的流程,根据该流程,我们进行了实际操作,但是在Webrtc P2P连接中,浏览器控制台出现错误信息:
global - 全局变量 全局对象(global object),不要和 全局的对象( global objects )或称标准内置对象混淆。这里说的全局的对象是说在全局作用域里的内的对象。全局作用域包含了全局对象的属性,还有它继承来的属性。 注意浏览器下的全局对象跟 nodejs 中的全局对象不一致 浏览器环境下的全局对象就是window Node 的全局对象是 global JS 语言标准的全局的内置对象 JS 语言规范中的全局的内置对象在 Nodejs 中都有效,以下简单过一下,不熟悉请查MDN 文
我相信大家首先想到的思路就是在useEffect中通过getBoundingClientRect()获得对应传入元素(id)的位置,然后通过定位增加一个类似的弹窗效果。
如果你js没到一个境界,我就算教你调试bug,激活成功教程一些插件之类的,你也根本不知道我在做什么。我的目的只是让你认识控制台,让你入门调试,之后的路还得靠你们自己走。
最近系统梳理HTML5所有涉及到的标签时,梳理至<link>和<script>标签时,碰巧想到一个困扰很久的问题,即一般把<script>放在<body>尾部,<link>标签放在<head>内部,而页面通过CDN引入第三方框架或库时,基本都是将其<script>标签放在<link>标签前面。
XSS 攻击指的是跨站脚本攻击,是一种代码注入攻击。攻击者通过在网站注入恶意脚本,使之在用户的浏览器上运行,从而盗取用户的信息如 cookie 等。
Browserify 是什么 Browserify 是一个浏览器端代码模块化的工具 为什么要使用 Browserify 浏览器端的代码模块化有2个明显的好处: 1)前端JS可以使用npm包 我们知道 npm 中有非常丰富的功能包,但没法在浏览器中直接用,因为他们是按照 nodejs 模块化标准写的,使用 require 和 module.exports 引用和构造模块,浏览器不支持此类语法,所以需要浏览器端模块化工具的支持,这样就相当于给浏览器端增加了 npm 库 2)模块化开发 现在前端J
Themeablebrowser是一个外部浏览器插件,它fork自inappbrowser,相比于后者,此插件的目的是提供一个可以与你的应用程序的主题相匹配的in-app-browser,以便给你的应用保持一致的外观和感觉。所以,除了一些主题化的配置外,核心部分使用参考inappbrowser文档。
很少有人能一下子就写出完全没有问题的代码。工作良好的程序,都是经过一遍遍的反复测试运行、发现问题、剔除问题(也就是我们所说的找Bug和修Bug)过后的产物,经过了这一过程,程序才能最终达到一个相对稳定的状态。
注:本文测试、截图均为Edge浏览器(内核是Chromium),浏览器内核可了解《有哪些浏览器/内核?[1]》
作为前端开发,在浏览器上打印算是一个比较常见的需求了。最简单的做法就是直接打印整个网页,在浏览器直接打印或者调用window.print()。 这样就能将当前页面整个打印出来了。 然而,实际上的需求往往都不是这样简单,它更多的可能是需要打印整个网页中的某一段“特定”的内容。
推特上大约一半的回答都是错误的。答案并不是 V8(或者虚拟机)!!虽然“JavaScript”计时器” 很出名,但是 setTimeout 和 setInterval 函数并不是 ECMAScript 规范或者任何 JavaScript 引擎实现。定时器由浏览器实现,在不同浏览器中的实现也会有所不同,Node.js 也实现了自己的定时器。
一个页面允许加载的外部资源有很多,常见的有脚本、样式、字体、图片和视频等,对于这些外部资源究竟是如何影响整个页面的加载和渲染的呢?今天我们来一探究竟。
参考链接: webpack-output webpack-entry webpack-devtool
看到这个题目,好多的then,实际上只需要记住一个原则:.then 或.catch 的参数期望是函数,传入非函数则会发生值透传。
Developer Menu是React Native给开发者定制的开发者菜单,来帮助开发者调试React Native应用。
因为工作的需要,接触了websocket,开始的一些很简单的代码,都不知道该怎样运行起来,所以,总是有一层神秘感,却没有太多的兴趣去研究它。不过,还是免不了要了解一些才不至于对于后续的工作有影响。从塌下心来学习,到最后完成编码测试,不超过一周,遇到了很多问题,万幸,通过自己的思考和师傅们帮忙都解决了。 关于go与websocket编程,github上有很多开源的源码,比如https://github.com/garyburd/go-websocket。我发现,现在网上流传的关于go 的webs
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)
搭建一个简单的web服务器的步骤 1.生成如下目录 nodeLearn(文件夹) begining(文件夹) sever.js 2.打开 官网,复制官网-创建web服务器的示例代码到 sever.js 保存 const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode
1.渲染引擎: 用来解析HTML与CSS,俗称内核,比如chrome浏览器的blink,老 版本的webkit
譬如某个js文件不是很重要,并不是整个页面需要的脚本,可能只是某个功能需要的,这个功能可能是用户点击了某个按钮才触发,入口比较深。且和你页面本身的结构不同类,譬如你是基于react的页面,这个功能的js是jquery插件。这种js文件我一般采用动态加载方式引入。
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt
浏览器本身并不会执行JS代码,而是通过内置的JavaScript引擎(解释器)来执行JS代码。JS引擎执行代码时逐行解释每一句代码(转换为机器语言),然后由计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行。
用来解析HTML与css,俗称内核,比如Chrome浏览器的blink,老版本webkit
当时的我是一脸懵逼的,因为从来都没有听过这个专业名词。不过面试官还是很友好的,他说没关系,那你来做一道题,看看下面这段代码的执行结果是什么?
网上讲粘贴复制的很多,讲清楚复制异步数据得很少,在真机上真正验证过得凤毛麟角,正巧工作上遇到了复制接口返回的数据这个问题,求助了很多人,没有太好的解决办法,最终通过修改交互实现了这个复制功能,故写篇文档记录一下,也分享给大家。
最近小编接了一个新需求,用h5开发页面,通过webview嵌入原生APP中,自己在浏览器上开发爽歪歪,什么信息都能看到,可是一嵌入原生app中,瞬间就熄火了,啥也看不到了,不知道为什么,反正就是页面点不动了。
PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统、分辨率、设备等因素没有关系,不论是在Windows,Unix还是在苹果公司的Mac OS操作系统中PDF格式都通用。Adobe公司在1993年为了文档传输创造了这个文件格式,这个格式使用PostScript页面描述语言,适用于列印图像和文字(无论是在纸、胶片或非物质的CRT都可)。PDF是基于页面描述语言。它既可以像程序代码一样具有可读性,又能表示出可任意放大和缩小的矢量图。
Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。
当我们把网页应用转化成 PDF 的时候有着各式各样的方法。在下面这篇文章来说,Rachel Andrew 通过她自己使用市面上各种工具的经验来帮助我们找到最合适自己的工具。
本周跟着 Tasks, microtasks, queues and schedules 这篇文章一起深入理解这些概念间的区别。
在本文中,我将展示如何使用 Node.js、Puppeteer、headless Chrome 和 Docker 从样式复杂的 React 页面生成 PDF 文档。
Promise本身是同步的立即执行函数, 当在executor中执行resolve或者reject的时候, 此时是异步操作, 会先执行then/catch等,当主栈完成后,才会去调用resolve/reject中存放的方法执行,打印p的时候,是打印的返回结果,一个Promise实例。
这段代码的关键在于:var x = y = 1; 实际上这里是从右往左执行的,首先执行y = 1, 因为y没有使用var声明,所以它是一个全局变量,然后第二步是将y赋值给x,讲一个全局变量赋值给了一个局部变量,最终,x是一个局部变量,y是一个全局变量,所以打印x是报错。
PhantomJS是一个基于webkit的JavaScript API,使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。它不仅是个隐形的浏览器,提供了诸如CSS选择器、支持Web标准、DOM操作、JSON、HTML5、Canvas、SVG等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。PhantomJS的用处可谓非常广泛,诸如前端无界面自动化测试(需要结合Jasmin)、网络监测、网页截屏等。
总结一点:JavaScript是单线程的,但是浏览器不是单线程的。一些I/O操作,定时器的计时和事件监听是由其他线程完成的。
上一篇章使用watch组件通过监听文本框的参数变化,实现了名称拼接的案例。这种业务使用事件监听都可以处理,但是如果需要监听网页的URL地址变化,这样事件监听肯定是做不了的。那么此时就可以使用watch来实现了。
在调试程序时总是会遇到各种挑战。Node.js 的异步工作流为这一艰巨的过程增加了额外的复杂性。尽管 V8 引擎为了方便访问异步栈跟踪进行了一些更新,但是在很多数情况下,我们只会在程序主线程上遇到错误,这使得调试有些困难。同样,当我们的 Node.js 程序崩溃时,通常需要依靠一些复杂的 CLI 工具来分析核心转储[1]。
箭头函数不会创建自己的this, 所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它在定义时已经确定了,之后不会改变。
前端即网站前台部分,运行PC在端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,合适的动效设计,给用户带来极高的用户体验。
2、除了在插件内部contenscript background 和 popup之间传递消息以外,其他网站也可以给插件发送消息。方法如下 首先,需要增加配置 externally_connectable:{matches:[“https://*.xxx.com/”]}指定允许哪些网站可以给当前插件发送消息,相当于白名单,只有在白名单中的站点发送的消息,扩展才会监听
AJAX同步异步编程是针对于当主线程遇到 xhr.send() 方法时,是否将其放到任务队列中去,且其异步特点是:浏览器开了一个新的线程帮我们去服务器获取数据。 这也正是体现了AJAX的工作模式,其实大体上和事件循环机制是相同的,不同的是,到底是交给JS来做,还是交给浏览器来开一个新的线程来做,AJAX的功能工作模式下,请求数据方面就是交给了xhr.send()方法,而监听状态码的改变是交给了JS来做,所以在请求数据过程中引起的状态码的改变就是可以引起监听事件的触发,可以在异步模式下很好得体会到这么一点。
好了,现在基本页面已经写好了。但是为了演示父组件与子组件之间的传值以及调用关系,我将上面提交评论的部分抽出来作为一个子组件。
领取专属 10元无门槛券
手把手带您无忧上云