手机打开浏览器调试模式提示这个,网上查的是调试模式,捣鼓了半天也没关掉,求助

简介 如果您听说过 Node或者阅读过┅些文章,宣称 Node 是多么多么的棒那么您可能会想:“Node 究竟是什么东西?”尽管不是针对所有人的但 Node 可能是某些人的正确选择。 为试图解释什么是 Node.js本文探究了它能解决的问题,它如何工作如何运行一个简单应用程序,最后Node 何时是和何时不是一个好的解决方案。本文鈈涉及如何编写一个复杂的 Node 应用程序也不是一份全面的 Node 教程。阅读本文应该有助于您决定是否应该学习 Node以便将其用于您的业务。 Node 旨在解决什么问题 Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”。当前的服务器程序有什么问题我们来做个数学題。在 Java? 和 PHP 这类语言中每个连接都会生成一个新线程,每个新线程可能需要 2 MB 配套内存在一个拥有 8 GB RAM 的系统上,理论上最大的并发连接数量是 4,000 个用户随着您的客户端基础的增长,您希望您的 web 应用程序支持更多用户这样,您必须添加更多服务器当然,这会增加业务成本尤其是服务器成本、运输成本和人工成本。除这些成本上升外还有一个技术问题:用户可能针对每个请求使用不同的服务器,因此任何共享资源都必须在所有服务器之间共享。例如在 Java 中,静态变量和缓存需要在每个服务器上的 JVMs 之间共享这就是整个 web 应用程序架构中嘚瓶颈:一个服务器能够处理的并发连接的最大数量。 Node 解决这个问题的方法是:更改连接连接到服务器的方式每个连接都创建一个进程,该进程不需要配套内存块而不是为每个连接生成一个新的 OS 线程(并向其分配一些配套内存)。Node 声称它绝不会死锁因为它根本不允许使用锁,它不会直接阻塞 I/O 调用Node 还宣称,运行它的服务器能支持数万个并发连接事实上,Node 通过将整个系统中的瓶颈从最大连接数量更改箌单个系统的流量来改变服务器面貌 现在您有了一个能处理数万条并发连接的程序,那么您能通过 Node 实际构建什么呢如果您有一个 web 应用程序需要处理这么多连接,那将是一件很 “恐怖” 的事!那是一种 “如果您有这个问题那么它根本不是问题” 的问题。在回答上面的问題之前我们先看看 Node 如何工作以及它被设计的如何运行。 Node 肯定不是什么 没错Node 是一个服务器程序。但是它肯定不 像 Apache 或 Tomcat。那些服务器是独竝服务器产品可以立即安装并部署应用程序。通过这些产品您可以在一分钟内启动并运行一个服务器。Node 肯定不是这种产品Apache 能添加一個 PHP 模块来允许开发人员创建动态 web 页,使用 Tomcat 的程序员能部署 JSPs 来创建动态 web 页Node 肯定不是这种类型。 在 Node 的早期阶段(当前是 version 0.4.6)它还不是一个 “運行就绪” 的服务器程序,您还不能安装它向其中放置文件,拥有一个功能齐全的 web 服务器即使是要实现 web 服务器在安装完成后启动并运荇这个基本功能,也还需要做大量工作 Node 如何工作 Node 本身运行 V8 JavaScript。等等服务器上的 JavaScript?没错您没有看错。服务器端 JavaScript 是一个相对较新的概念這个概念是大约两年前在 developerWorks 上讨论 Aptana Jaxer 产品时提到的(参见 参考资料)。尽管 Jaxer 一直没有真正流行但这个理念本身并不是遥不可及的 — 为何不能茬服务器上使用客户机上使用的编程语言? 什么使 V8V8 JavaScript 引擎是 Google 用于他们的 Chrome 浏览器调试模式的底层 JavaScript 引擎。很少有人考虑 JavaScript 在客户机上实际做了些什么实际上,JavaScript 引擎负责解释并执行代码使用 V8,Google 创建了一个以 C++ 编写的超快解释器该解释器拥有另一个独特特征;您可以下载该引擎并將其嵌入任何 应用程序。它不仅限于在一个浏览器调试模式中运行因此,Node 实际上使用 Google 编写的 V8 JavaScript 引擎并将其重建为在服务器上使用太完美叻!既然已经有一个不错的解决方案可用,为何还要创建一种新语言呢 事件驱动编程 — 事件!数据通过连接接收 — 事件!数据通过连接停止 — 事件! 为什么这种设置类型对 Node 很理想?JavaScript 是一种很棒的事件驱动编程语言因为它允许匿名函数和闭包,更重要的是任何写过代码嘚人都熟悉它的语法。事件发生时调用的回调函数可以在捕获事件处编写这样,代码容易编写和维护没有复杂的面向对象框架,没有接口没有在上面架构任何内容的潜能。只需监听事件编写一个回调函数,然后事件驱动编程将照管好一切! 示例 Node 应用程序 最后,我們来看一些代码!让我们将讨论过的所有内容综合起来创建我们的第一个 Node 应用程序。由于我们已经知道Node 对于处理高流量应用程序很理想,我们就来创建一个非常简单的 web 应用程序 — 一个为实现最大速度而构建的应用程序下面是 “老板” 交代的关于我们的样例应用程序的具体要求:创建一个随机数字生成器 RESTful API。这个应用程序应该接受一个输入:一个名为 “number” 的参数然后,应用程序返回一个介于 0 和该参数之間的随机数字并将生成的数字返回调用者。由于 “老板” 希望它成为一个广泛流行的应用程序因此它应该能处理 50,000 个并发用户。我们来看看代码: 清单 2. Node 随机数字生成器 复制代码 代码如下: // these modules need to be imported in order to use 浏览器调试模式来访问这个应用程序键入以下地址(确保您完成了上面的步骤):localhost/?number=27。 您的浏览器调试模式窗口将更改到一个介于 0 到 27 之间的随机数字单击浏览器调试模式上的 “重新载入” 按钮,将得到另一个随机数字就昰这样,这就是您的第一个 Node 应用程序! Node 对什么有好处 到此为止,应该能够回答 “Node 是什么” 这个问题了但您可能还不清楚什么时候应该使用它。这是一个需要提出的重要问题因为 Node 对有一些东西有好处,但相反对另一些东西而言,目前 Node 可能不是一个好的解决方案您需偠小心决定何时使用 Node,因为在错误的情况下使用它可能会导致一个多余编码的 LOT 它对什么有好处? 正如您此前所看到的Node 非常适合以下情況:您预计可能有很高的流量,而在响应客户端之前服务器端逻辑和处理所需不一定是巨大的Node 表现出众的典型示例包括: 1.RESTful API 提供 RESTful API 的 web 服务接收几个参数,解析它们组合一个响应,并返回一个响应(通常是较少的文本)给用户这是适合 Node 的理想情况,因为您可以构建它来处理數万条连接它还不需要大量逻辑;它只是从一个数据库查找一些值并组合一个响应。由于响应是少量文本入站请求时少量文本,因此鋶量不高一台机器甚至也可以处理最繁忙的公司的 API 需求。 2.Twitter 队列 想像一下像 Twitter 这样的公司它必须接收 tweets 并将其写入一个数据库。实际上每秒几乎有数千条 tweets 达到,数据库不可能及时处理高峰时段需要的写入数量Node 成为这个问题的解决方案的重要一环。如您所见Node 能处理数万条叺站 tweets。它能迅速轻松地将它们写入一个内存排队机制(例如 memcached)另一个单独进程可以从那里将它们写入数据库。Node 在这里的角色是迅速收集 tweet 並将这个信息传递给另一个负责写入的进程想象一下另一种设计 — 一个常规 PHP 服务器自己试图处理对数据库的写入 — 每个 tweet 将在写入数据库時导致一个短暂的延迟,这是因为数据库调用正在阻塞通道由于数据库延迟,一台这样设计的机器每秒可能只能处理 2000 条入站 tweets每秒 100 万条 tweets 需要 500 个服务器。相反Node 能处理每个连接而不会阻塞通道,从而能捕获尽可能多的 tweets一个能处理 50,000 条 tweets 的 Node 机器只需要 20 个服务器。 3.映像文件服务器 ┅个拥有大型分布式网站的公司(比如 Facebook 或 Flickr)可能会决定将所有机器只用于服务映像Node 将是这个问题的一个不错的解决方案,因为该公司能使用它编写一个简单的文件检索器然后处理数万条连接。Node 将查找映像文件返回文件或一个 404 错误,然后什么也不用做这种设置将允许這类分布式网站减少它们服务映像、.js 和 .css 文件等静态文件所需的服务器数量。 它对什么有坏处 当然,在某些情况下Node 并非理想选择。下面昰 Node 不擅长的领域: 1.动态创建的页 目前Node 没有提供一种默认方法来创建动态页。例如使用 JavaServer Pages (JSP) 技术时,可以创建一个在这样的 JSP 代码段中包含循環的 index.jsp 页Node 不支持这类动态的、HTML 驱动的页面。同样Node 不太适合作为 Apache 和 Tomcat 这样的网页服务器。因此如果您想在 Node 中提供这样一个服务器端解决方案,必须自己编写整个解决方案PHP 程序员不想在每次部署 web 应用程序时都编写一个针对 Apache 的 PHP 转换器,当目前为止这正是 Node 要求您做的。 2. 关系数據库重型应用程序 Node 的目的是快速、异步和非阻塞数据库并不一定分享这些目标。它们是同步和阻塞的因为读写时对数据库的调用在结果生成之前将一直阻塞通道。因此一个每个请求都需要大量数据库调用、大量读取、大量写入的 web 应用程序非常不适合 Node,这是因为关系数據库本身就能抵销 Node 的众多优势(新的 NoSQL 数据库更适合 Node,不过那完全是另一个主题了) 结束语 问题是 “什么是 Node.js?” 应该已经得到解答。阅读夲文之后您应该能通过几个清晰简洁的句子回答这个问题。如果这样那么您已经走到了许多编码员和程序员的前面。我和许多人都谈論过 Node但它们对 Node 究竟是什么一直很迷惑。可以理解他们具有的是 Apache 的思维方式 — 服务器是一个应用程序,将 HTML 文件放入其中一切就会正常運转。而 Node 是目的驱动的它是一个软件程序,使用 JavaScript 来允许程序员轻松快速地创建快速、可伸缩的 web 服务器Apache 是运行就绪的,而 Node 是编码就绪的 Node 完成了它提供高度可伸缩服务器的目标。它并不分配一个 “每个连接一个线程” 模型而是使用一个 “每个连接一个流程” 模型,只创建每个连接需要的内存它使用 Google 的一个非常快速的 JavaScript 引擎:V8 引擎。它使用一个事件驱动设计来保持代码最小且易于阅读所有这些因素促成叻 Node 的理想目标 — 编写一个高度可伸缩的解决方案变得比较容易。 与理解 Node 是 什么同样重要的是理解它不是 什么。Node 并不是 Apache 的一个替代品后鍺旨在使 PHP web 应用程序更容易伸缩。事实确实如此在 Node 的这个初始阶段,大量程序员使用它的可能性不大但在它能发挥作用的场景中,它的表现非常好 将来应该期望从 Node 得到什么呢?这也许是本文引出的最重要的问题既然您知道了它现在的作用,您应该会想知道它下一步将莋什么在接下来的一年中,我期待着 Node 提供与现有的第三方支持库更好地集成现在,许多第三方程序员已经研发了用于 Node 的插件包括添加文件服务器支持和 MySQL 支持。希望 Node 开始将它们集成到其核心功能中最后,我还希望 Node 支持某种动态页面模块这样,您就可以在 HTML 文件中执行茬 PHP 和 JSP(也许是一个 NSP一个 Node 服务器页)中所做的操作。最后希望有一天会出现一个 “部署就绪” 的 Node 服务器,可以下载和安装只需将您的 HTML 攵件放到其中,就像使用 Apache 或 Tomcat 那样Node 现在还处于初始阶段,但它发展得很快可能不久就会出现在您的视野中。 答案来源于网络

工作内容:了解用户需求做竞品调研,画产品原型写产品文档,讲解产品需求测试产品Bug,收集用户反馈苦练金刚罩以防止程序员拿刀砍。2 需要技能:PPTWord, Axure,XP,MVP,行业知識沟通。 二. UI1 工作内容:收到产品原型给原型上色,偶尔会自作主张调整下原型的位置出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格最好给Android,IOS或者是CSS做好标注还有的需要直接帮他们切好图,最后要练出来象素眼看看这些不靠谱的程序员们有没有上错色或者是有偏差。2 需要技能:PSIllustrator,Sketch耐性,找素材 三. CSS1 工作内容:JS工程师其实分成两类,在之前讲CSS的时候已经提到过一个是套页面的,一个是前后端分离的对这两个概念还是分不太清的,可以回过头去看CSS的部分 2 需要技能:环境【IDE(WEBStorm,SublimeEditPlus),源码管悝(SVN/Git) 工作内容:大部分的后端工程师都停留在功能实现的层面上这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计然后后端程序员从JS到CSS到Java全写,完全就是一个通道所有的複杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因 2 工作内容:如果你做了一个DBA,基本上会遇到两种情况一种是你的后端工程师懂架构,知道怎么合便使用DB知道如何防止穿透DB,那么恭喜你你只是需要当一个DB技术兜底的顾问就好,基本上没什么活可以做做个监控,写个统计就好了你可以花时间在MongoDB了,Hadoop了这些随便玩玩儿。再按照我之前说的做好数据备份。如果需求变动比较大往往会牵涉到┅些线上数据的更改,那么就在发布的时候安静的等着等着他们出问题。。如果不出问题就可以回家睡觉了。 工作内容:运维的工莋大概分成几个部分我对于修真院学习运维的少年们都这么说,大概是:A基础环境的搭建和常用软件的安装和配置(兼网管的还有各種程控机),常用软件指的是SVN,Git邮箱这种,更细节的内容请参考修真院对于运维职业的介绍B。日常的发布和维护如刚刚讲到的一样,測试环境和线上环境的发布和记录原则上,对线上所有的变更都应该有记录C。数据的备份和服务的监控&安全配置各种数据,都要做恏备份和回滚的手段提前准备好各种紧急预案,服务的监制要做好安全始终都是不怎么被重点考虑的问题,因为这个东西无底洞你詠远不知道做到什么程度算是比较安全了,所以大多数都是看着情况来D。运维工具的编写这一点在大的云服务器商里格外常见,大公司也是一样的E。Hadoop相关的大数据体系架构的运维确实有公司在用几百台机器做Hadoop,所以虽然不常见我还是列出来吧。 .QA  1 工作内容:QA需要了解需求很多公司会要求QA写测试用例,我觉得是扯淡完全是在浪费时间。通常开发三周QA测试的时间只有一周到一周半。还有关于提前寫测试用例的都不靠谱。 2 需要技能:流程【Bug修复流程版本发布流程】工具【禅道,BugZillaJira,Excel表格来统计Bug数,自动化测试】性格【严谨耐心】 九. 算法工程师  1 工作内容:算法工程师的工作内容,大部分时间都是在调优就是调各种参数和语料,寻找特征验证结果,排除噪音吔会和Hadoop神马的打一些交道,mahout神马的我那个时候还在用JavaML。现在并不知道有没有什么更好用的工具了有的时候还要自己去标注语料---当然大蔀分人都不爱做这个事儿,会找漂亮的小编辑去做2 需要技能:基础【机器学习,数据挖掘】工具【MahoutJavaML等其他的算法工具集】 十. 搜索工程師  1 工作内容: 所以搜索现在其实分成两种。一种是传统的搜索包括:A。抓取 B解析C。去重D处理E。索引F查询另一种是做为架构的搜索。并不包括之前的抓取解析去重只有索引和查询。A索引B。查询 2 工作内容:工作内容在前期会比较多一些基础搭建还是一个挺讲究的倳儿。系统搭建好之后呢大概是两种,一种是向大数据部门提交任务跑一圈给你。一种是持续的文本信息处理中增加新的处理模块潒我之前说的增加个分类啦,实体识别神马的好吧第一种其实我也不记得是从哪得来的印象了,我是没有见到过的架构稳定了之后,夶数据部门的工作并不太多常常会和算法工程师混到一起来。其他的应该就是大数据周边产品的开发工作了再去解决一些Bug什么的。2 2 需偠技能:环境【Android StudioMaven,Gradle】基础【数据结构,Java计算机网络】组件【IM,地图支付,拍照视频,音频统计,分享手势密码】 十三. IOS工程师  1 工莋内容:IOS工程师的工作内容真的挺简单的,听需求定接口。做个适配抛弃一下iphone4。还有啥。马丹以我为数不多的IOS知识来讲,真的不知道还有啥了我知道的比较复杂的系统也是各种背景高斯模糊,各种渐变各种图片滤镜处理,其他并没有什么支付,地图统计这些东西。 嗯2 需要技能:环境【Xcode】基础【数据结构,Object计算机网络】组件【IM,地图支付,拍照视频,音频统计,分享手势密码】

我要回帖

更多关于 浏览器调试模式 的文章

 

随机推荐