Questions tagged «javascript»

JavaScript(不要与Java混淆)是一种高级,动态,多范式,弱类型的语言,用于客户端脚本和服务器端脚本。使用此标记可解决有关ECMAScript,JavaScript,JScript等的常见实现的问题。JS通常不引用其ECMA-表兄弟ActionScript。


2
为什么XMLHttpRequest似乎没有遵循命名约定?
我最近一直在使用JavaScript 处理XMLHttpRequest对象,我不禁注意到该名称的大小写毫无意义。为什么“ XML”全部大写而“ Http”没有大写?他们都是缩写! 当然,将名称用作以下内容之一会更有意义: XmlHttpRequest (PascalCase,JavaScript中类名的最佳实践) xmlHttpRequest (camelCase,虽然不是类,但也很常见) XMLHTTPRequest (大写字母缩写,很少在编程中使用?) 我敢肯定一定有一些原因,并且我不愿意认为它现在是一成不变的,因为当时没有人对此提出质疑。我没有意识到另一种命名约定吗?


10
习惯于静态语言的程序员如何应对缺少Javascript工具的问题
在我的大部分职业生涯中,我几乎都是使用编译语言(尤其是Java)进行编程的。关于Java,我最喜欢的事情之一是当使用Eclipse之类的工具时,您的生产率如何,实际编写的代码很少。 您可以: 轻松自动地重构您的方法和类 立即查看调用方法或使用常量的所有位置(Open Call层次结构/显示引用) 静态类型意味着您可以使用代码完成来显示对象上可用的所有参数/功能 按住Control键单击函数/成员/类名,直接进入其定义 所有这些功能使我觉得IDE是我最好的朋友。编写Java代码,尤其是了解其他人的程序变得容易得多。 但是,越来越多的人要求我使用Javascript,到目前为止,我的经验一直很消极。 特别是: 没有立即找到函数入口点的方法(纯文本搜索除外,纯文本搜索可能会导致随后在调用层次结构之后进一步搜索方法,而其中两到三个您忘记了从哪里开始) 将参数传递给函数,无法知道该参数上有哪些属性和函数(除了实际运行程序之外,导航至调用该函数的位置,并使用console.logs输出所有属性可用) 匿名函数通常用作回调,这经常导致混乱的代码路径,从而使您无法快速浏览。 可以肯定的是,JSLint在运行时会捕获一些错误,但即使那样,也不如直接在浏览器中的代码下具有红色波浪线那样方便。 结果是您几乎始终需要把整个程序放在脑子里。这极大地增加了编写复杂程序的认知负担。所有这些需要担心的额外东西,在我的大脑中为实际创造力和解决问题的空间减少了。 当然,将对象放在一起而不是编写整个正式的类定义会更快。但是,尽管程序可能会更容易些,编写起来更快,但以我的经验来看,它们却很难阅读和调试。 我的问题是,其他程序员如何应对这些问题?显然Javascript越来越流行,我读的博客都是关于人们如何使用Java的,而不是拼命尝试寻找解决这些问题的方法。 GWT允许您改为使用Java编写Javascript环境的代码,但它似乎没有我所期望的被广泛使用。实际上,人们似乎更喜欢Javascript用于复杂程序。 我想念什么?

4
为什么要将登录页面与单个页面应用程序分开?
我想知道为什么将SPA的登录页面作为单独的页面而不是SPA的页面(如在加载和通过ajax请求发送数据中)的页面似乎很流行? 我唯一能想到的就是安全性,但是我无法想到特定的安全性原因。我的意思是,唯一想到的是,如果您的登录页面是SPA的一部分,它将通过ajax发送用户名/密码,而Firebug或网络检查器之类的工具也可以看到该用户名/密码,即使您以普通方式发送该用户名/密码POST请求,还有其他可以轻松捕获此数据的工具(例如fiddler,httpscoop等)。 我有什么想念的吗?

3
在单页面应用程序中处理浏览器缓存
我试图弄清楚如何正确处理单页应用程序的Web浏览器缓存。 我有一个非常典型的设计:实现SPA的几个HTML,JS和CSS文件,以及SPA消耗的一堆JSON数据。当我要推送更新时会出现问题:我同时更新了网站的静态部分和同时生成JSON的代码,但是客户端浏览器通常缓存了静态部分,因此旧代码尝试处理新数据并可能(取决于所做的更改)遇到问题。(特别是,在使用缓存的JS而无需重新验证的情况下,IE似乎比Chrome或Firefox更具攻击性。) 处理此问题的最佳方法是什么? 确保我的JSON更改向后兼容,并假定浏览器缓存将在合理的时间范围内到期。 在静态JS和JSON中都嵌入某种版本号,然后window.location.reload(true);在它们不匹配时执行。 找出标题的适当组合(must-revalidate或no-cache其他方式;有关执行此操作的方法,来源 会有所不同),以确保浏览器始终在每次加载时重新验证所有资源,即使这意味着要进行几次额外的往返加载网站。 微管理我的缓存控件并使标头过期,以便在我要推送更新时静态内容过期。 还有吗

3
在服务器端vs客户端vs混合中构建Web应用程序?[关闭]
当前有多种构建Web应用程序的方法: 1.仅服务器端 这是一种经典方法,您可以通过Ruby on Rails,Django,Express,Play等Web框架在服务器上呈现页面。框架等 典型的工作流程:在您选择的框架中,在服务器上构建所有业务逻辑,模型和视图模板。 2.客户端+ REST API 不久之前,整个Web社区开始在Angular,Backbone,Ember和其他几十个JavaScript MV *框架中构建客户端应用程序。现在我们也有React.js参加了聚会。 更新:没有误会。我所说的客户端仅是完全分离关注点。您有REST API服务器和与该服务器通信的客户端应用程序。根据您的用例,您将永远不会有一个真正的仅客户端应用程序,该应用程序既不连接到后端也不进行身份验证或数据持久化。 典型的工作流程:花几个小时来确定Angular,Backbone,Ember和X。然后在客户端上构建路线,模型,视图,控制器。完成后,现在在服务器上构建模型,控制器,路由。从某种意义上说,您正在做两倍的工作。 3.混合动力 我对使用这种方法了解不多,但是如果我猜测的话,您可以在服务器上呈现视图(MVC框架的视图)。结果,您可以获得SEO支持以及更快的页面加载速度。 在Hybrid前端,有Airbnb的rendr,据说它结合了主干并表达在一起。 Eric Florenzo今天在他的博客上发布了:React:最后,一个很棒的服务器/客户端Web堆栈。 构建Web应用程序的方法数量不胜枚举。对于正在学习Web开发的人来说,这可能会成为一个问题。如何决定使用哪种方法来构建其下一个应用程序?

2
什么是ASM.js,对每个人意味着什么?
我开始听到有关这个名为ASM.js的项目的传闻。目前,他们的网站糟糕透顶。这是我在网络上的研究所知道的。 它是可以高度优化的JavaScript的子集。我猜是因为它避免了语言的动态部分。 编译为ASM.js的代码的性能大约是C的一半(不是很轻)。 目的是使编译器使其目标语言为ASM.js。 Firefox将随ASM.js优化一起发布。 Mozilla和Unreal团队通过它将Unreal Engine移植到了Web上,并以接近本地的速度运行在Firefox版本中。 网上似乎没有关于这到底是什么,有用性或最终目的的任何具体信息。是否可以编译本来可以在服务器端运行的代码库,并使其以接近本机的速度在浏览器中运行?对开发人员有什么影响?

3
WebStorm包含哪些功能,而RubyMine不包含?
我正在购买Rubymine,因为我正在做少量的红宝石,但是却做大量的html5 / javascript。 我准备使用Webstorm,因为我确实有很多基于html5 / js的框架/应用程序正在工作,但是随后我读到WebStorm / PhpStorm / Rubymine等都基于其IDEA框架,并且看起来像每个框架都包含WebStorm的功能,除了一些不是立即可用但可以通过插件添加的功能。 我对WebStorm感兴趣的主要功能是: 来自IDE的JS单元测试 UI中的JS皮棉/提示覆盖率 DOM / JS重构/智能感知 Coffeescript支持 SVN / Git集成 FTP和远程同步(尽管不如其他重要) 因此,鉴于以上所述,Rubymine也会提供上述功能吗?我宁愿拥有1个可以同时使用的IDE,也不愿拥有2个具有很多重叠功能的IDE。 是否只有Webstorm内有任何特定功能,而其他任何IDE中都没有?
27 javascript  ide  ruby 

12
JavaScript是如何流行的?
在古代历史中,Brendan Eich曾设计过一种语言,而在当今世界,JavaScript是一种在许多不同地方实现和使用的流行语言。 是什么导致该语言流行?是以前的程序员熟悉的类似C的语法吗?Netscape是否有足够的市场控制权来强制使用它?还是有更深层的原因使JavaScript流行而其他语言却不流行? 特别是,如果您必须使一种语言像JavaScript一样流行,那么您需要什么初始条件来重新获得其流行性?

2
为什么将大型匿名函数作为参数传递给其他函数,从而在JavaScript中得到如此广泛的接受?
我有一个观点(我肯定会与某些人共享),因为传递包含多行代码的匿名函数,因为其他函数的参数会极大地影响可读性和自我文档编制,以至于我认为对于任何可能使用该代码仅声明一个命名函数的人来说,它都要好得多。或者至少在声明主函数之前将该匿名函数分配给变量 但是,许多JavaScript库(jQuery,d3.js / NVD3.js)仅举几个例子,就以这种方式使用大型函数。 为什么这在JavaScript中如此广泛地被接受?它是一种文化的东西,还是我缺少的优势,这将使使用它比声明命名函数更可取?

4
是什么决定哪些Javascript函数正在阻塞与非阻塞?
几年来,我一直在做基于Web的Javascript(香草JS,jQuery,Backbone等),最近我正在与Node.js做一些工作。我花了一段时间才能摆脱“非阻塞”编程的束缚,但是我现在已经习惯于将回调用于IO操作等等。 我了解Javascript本质上是单线程的。我了解节点“事件队列”的概念。我不明白是什么决定了单个javascript操作是“阻止”还是“非阻止”。我如何知道我可以依靠哪些操作来同步生成输出供我在以后的代码中使用,以及我需要将哪些回调传递给我以便在初始操作完成后处理输出?在某个地方是否存在异步/非阻塞的Javascript函数列表,以及同步/阻塞的Javascript函数列表?是什么阻止我的Javascript应用成为一种激烈的竞争状况? 我知道需要很长时间的操作,例如Node中的IO操作和Web上的AJAX操作,要求它们是异步的并因此使用回调-但是谁在确定什么才是“长时间”?这些操作中是否有某种触发器可以将其从正常的“事件队列”中删除?如果不是,那么它们与简单的操作(如为变量赋值或遍历数组)之类的简单操作有何不同?似乎我们可以依靠它们以同步方式完成操作? 也许我什至没有正确地考虑这一点-希望有人可以让我直率。谢谢!

2
使用回调时,Javascript代码如何变得异步?
我一直在做很多在线阅读,试图弄清楚如何编写异步JavaScript代码。我的研究中出现的很多技术之一就是使用回调。当我了解如何编写和执行回调函数的过程时,我感到困惑的是,为什么回调似乎自动地使JavaScript执行异步。所以,我的问题是:在我的JavaScript代码中添加回调函数如何使所说的代码自动地异步?

7
自执行匿名函数与原型
在Javascript中,有几种在JavaScript中创建和管理类/命名空间的突出技术。 我很好奇哪种情况需要使用一种技术而不是另一种技术。我想选一个并坚持前进。 我编写了由多个团队维护和共享的企业代码,并且我想知道编写可维护的javascript时的最佳实践是什么? 我倾向于使用自执行匿名功能,但是我很好奇社区对这些技术的投票。 原型: function obj() { } obj.prototype.test = function() { alert('Hello?'); }; var obj2 = new obj(); obj2.test(); 自闭式匿名函数: //Self-Executing Anonymous Function (function( skillet, $, undefined ) { //Private Property var isHot = true; //Public Property skillet.ingredient = "Bacon Strips"; //Public Method skillet.fry = function() { var …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.