Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

2
从AngularJS中的过滤器访问范围变量
我通过date这种方式将值传递给自定义过滤器: angular.module('myapp'). filter('filterReceiptsForDate', function () { return function (input, date) { var out = _.filter(input, function (item) { return moment(item.value.created).format('YYYY-MM-DD') == date; }); return out; } }); 我也想在其中注入几个范围变量,就像我在指令中可以做的那样。不必将这些var作为函数参数显式传递就可以做到这一点吗?

2
Jasmine vs. Mocha Rails 3.1+的JavaScript测试[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我有茉莉花的经验,并且相当喜欢它。有没有人有过Jasmine和Mocha的使用经验,尤其是Rails?我想知道是否值得切换。


2
为什么对同一个ASP.NET MVC操作同时进行多个AJAX调用会导致浏览器阻塞?
几天前,我问了这个问题: 为什么$ .getJSON()会阻止浏览器? 我几乎在同一控制器动作上同时触发了六个jQuery ajax异步ajax请求。每个请求需要10秒才能返回。 通过调试和记录对操作方法的请求,我注意到请求已被序列化,并且从未并行运行。即我在log4net日志中看到一个时间轴,如下所示: 2010-12-13 13:25:06,633 [11164]信息-获得:1156 2010-12-13 13:25:16,634 [11164]信息-返回:1156 2010-12-13 13:25:16,770 [7124]信息-得到:1426 2010-12-13 13:25:26,772 [7124]信息-返回:1426 2010-12-13 13:25:26,925 [11164]信息-得到:1912 2010-12-13 13:25:36,926 [11164]信息-返回:1912 2010-12-13 13:25:37,096 [9812]信息-得到:1913 2010-12-13 13:25:47,098 [9812]信息-返回:1913 2010-12-13 13:25:47,283 [7124] INFO-Got:2002 2010-12-13 13:25:57,285 [7124]信息-返回:2002 2010-12-13 13:25:57,424 [11164]信息-获得:1308 2010-12-13 13:26:07,425 [11164]信息-返回:1308 查看FireFox中的网络时间轴,我看到以下内容: 上面的日志示例和Firefox网络时间轴都针对同一组请求。 是否对来自同一页面的同一操作的请求进行了序列化?我知道Session在同一会话中对对象的序列化访问,但是没有任何会话数据被触摸。 我将客户端代码剥离为一个请求(运行时间最长的请求),但这仍然会阻塞浏览器,即,仅当ajax请求完成时,浏览器才会响应任何链接单击。 我在这里(在Chrome的开发人员工具中)还观察到,在长时间运行的ajax请求执行时单击链接时,它Failed to load …

3
什么时候使用Requirejs和何时使用捆绑的javascript?
对于网络专家来说,这可能是一个愚蠢的问题。但是我对此有些困惑。现在,我有一个应用程序,使用两个Javascript文件执行不同的任务。现在,我正在使用Javascript捆绑器来合并和缩小所有文件。因此,在运行时将只有一个app.min.js文件。现在,Requirejs用于在运行时加载模块或文件。所以,问题是,如果我已经将所有内容都放在一个文件中,那么我是否需要requirejs?或者在什么情况下可以使用requirejs和/或bundler? 请让我知道是否需要更多详细信息。

4
Safari开发人员工具:如何在导航时保留控制台日志?
使用Safari Web Inspector读取JavaScript控制台输出时,导航时会重置日志,即从页面index.html转到mail.html会清除控制台输出。在Chrome开发者工具中,我可以通过右键单击控制台空间并选择“导航时保留日志”来轻松保留日志。使用此选项,在我手动清除输出之前,控制台日志输出将保持不变,从而简化了刷新或重定向到另一个页面的JavaScript调试过程。 Safari Web检查器中是否有类似功能?

6
究竟何时执行$(document).ready回调?
假设我们将.click()处理程序附加到回调中的anchor(<a>)标签上$(document).ready。该处理程序将取消默认操作(在之后href)并显示警报。 我想知道的是,回调将在何时准确执行,用户是否可以单击锚点(该文档已在浏览器中显示),但该事件尚未附加。 这是包含锚点的不同HTML页面,但是脚本的包含顺序不同。它们之间有什么区别(如果有)?不同的浏览器会表现不同吗? 第1页: <html> <head> <title>Test 1</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { $('a').click(function() { alert('overriding the default action'); return false; }); }); </script> </head> <body> <a href="http://www.google.com">Test</a> </body> </html> 第2页: <html> <head> <title>Test 1</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script> …

12
改善jQuery选择器性能的好方法?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我正在寻找可以改善jQuery调用选择器性能的任何方式。具体来说是这样的: 是$("div.myclass")不是快$(".myclass") 我想可能是这样,但是我不知道jQuery是否足够聪明,可以首先限制标记名的搜索,等等。有人对如何制定jQuery选择器字符串以获取最佳性能有任何想法吗?

7
在2011年为iOS / Android开发HTML5离线存储解决方案
问题: 我需要一个与设备无关的解决方案(例如HTML5),用于在电话或平板电脑类型的设备(例如iOS / Android)上离线存储和查询250,000多行数据。我的想法是让人们在没有任何蜂窝数据连接的情况下在偏远地区工作,他们需要对此数据运行查询并在脱机时对其进行编辑。部分将基于地理位置,因此,如果资产所在的区域中有资产(使用GPS),则它将显示这些资产并进行编辑。当他们返回办公室时,他们可以将数据同步回办公室服务器。 我从Web标准的角度来解决这个问题的原因基本上是为了节省金钱和时间,方法是在HTML5中编写一次,然后在多个平台上工作,而不是在Objective C和Java中编写两次。同样,如果您编写的内容与平台无关,那么您就不会被锁定,并且当每个人都迁移到更新的版本时,都不会陷入困境。我们有一个为Windows Mobile 5编写的类似应用程序,但由于该平台已失效,它已无用。 设备上的离线数据库必须为: 快速(响应时间少于2秒) 可能执行联接并与能够查询数据库的其他表有关系 根据GPS读数,通过x和y坐标选择某个范围或标准内的数据。 选项: HTML5本地存储: 对于少量<5,000个键/值的数据,如果将其转换为JSON,您甚至可以在其中存储数组/对象。 缺点: 即使在高端计算机上,超过10,000行的浏览器也会缓慢爬行。 无法对数据进行复杂的查询以提取所需的数据,因为您必须遍历整个存储并手动搜索它。 可以存储的存储空间的限制 Web SQL数据库: 符合要求。 快速在250,000行上运行查询(1-2秒) 可以创建复杂的查询,联接等 受Safari,Android和Opera支持,因此可在iOS和Android设备上使用 缺点: 自2010年11月起弃用 跨目录攻击的安全漏洞。并不是真正的问题,因为我们不会共享托管 IndexedDB: 键/值对象存储与本地存储类似,但带有索引。 缺点: 缓慢地对200,000行执行查询(15-18秒) 无法运行复杂的查询 不能与其他表联接 主要电话或平板电脑设备(例如iPad / Android)不支持 标准不完整 这就留下了实现不推荐使用的Web SQL方法的唯一选择,该方法只能再使用一年左右。目前,IndexedDB和本地存储不可用。 我不确定Mozilla和Microsoft如何弃用Web SQL数据库标准,以及W3C为何允许它发生。据推测,它们之间拥有台式机浏览器市场的77%。在先进的移动设备上,Mozilla和Microsoft的影响力几乎为零,因为Safari,Opera和Android占据了90%以上的市场份额。Mozilla和Microsoft如何决定应该在移动市场中使用哪个标准,而在哪个市场中最有可能使用脱机存储,这没有任何意义。 Mozilla在关于为什么要使用IndexedDB的评论中,主要是关于“开发者审美”的,他们不喜欢在JavaScript中运行SQL的想法。我不买。 目前,提出的标准还很差,并且是一个极其基本的NoSQL实现,该实现很慢,甚至不支持人们在数据库中所需的高级功能。建立数据库和获取数据有很多样板代码,但他们声称人们会在其顶部编写一些不错的抽象库,这些库将提供更多高级功能。截至2011年10月,它们无处可寻。 他们已经弃用了现有的Web SQL标准,该标准实际上有效并已在主要的移动/平板电脑浏览器中实现。而在主要的移动浏览器中没有它们的“新”和“更好”标准。 在接下来的3-5年中,作为IndexedDB规范可能逐步标准化,具有更多功能,在主要的移动/平板电脑浏览器中实现的功能以及一些易于使用的好的库,开发人员应该使用什么? W3C应该保持Web SQL数据库标准并行运行,并解决问题。它已经支持主要的移动平台,并且运行良好。Mozilla和Microsoft作为拥有最多桌面浏览器份额的两个播放器能够取消此标准的事实是相当可疑的,并且可以被视为试图阻止移动Web平台上的进展,直到他们能够赶上并提供该标准。与iOS / …

10
不使用jQuery的一些经验性技术原因是什么?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 上下文: 我为一整天整天攻击HTML,Javascript和CSS而忽略诸如jQuery(或其他等效的辅助框架)之类的工具而拒绝使用它们的前端开发人员感到惊讶。我不是在谈论JavaScript专家,而是在每天都在谈论Joe生产开发人员。我有很多论点,例如借口或个人观点,我认为这些论点没有任何技术价值,我想确保自己没有遗漏任何东西。 问题: 不使用jQuery的一些经验性技术原因是什么? 我并不是在寻找宗教或教条论点或主观观点,“就像其他框架更好”,jQuery是问题中所有可比框架的稻草人。

22
尝试加载角度超过一次
我有一个yeoman脚手架应用程序(全栈角度生成器)。 grunt serve工作正常,但grunt build会产生锁定内存的分布,这很可能是由于角度中的圆形引用所致。 我将angular升级到了1.2.15。我得到的错误是: WARNING: Tried to Load Angular More Than Once 升级之前,错误为: Error: 10 $digest() iterations reached. Aborting! 调试非常困难,因为它仅在构建/缩小之后才发生。我所有的模块都是angular的数组格式,因此最小化DI应该不是问题,而是这样。 没有单个脚本会导致这种情况。它消失的唯一方法是,如果我不使用我的app.js文件进行初始化。我的app.js文件在下面。 有什么想法吗? 'use strict'; angular.module('myApp', [ 'ngCookies', 'ngResource', 'ngSanitize', 'ngRoute', 'ngTagsInput', 'ui.bootstrap', 'google-maps', 'firebase' ]); angular.module('myApp').config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/listing.html', controller: 'ListingCtrl' }) .otherwise({ redirectTo: …

6
在for循环中分配点击处理程序
我有几个div的#mydiv1,#mydiv2,#mydiv3,...和要指派点击处理对他们说: $(document).ready(function(){ for(var i = 0; i < 20; i++) { $('#question' + i).click( function(){ alert('you clicked ' + i); }); } }); 但是,我没有得到单击'you clicked 3'时的显示#mydiv3(就像其他所有单击一样)'you clicked 20'。我究竟做错了什么?

4
在contenteditable div中的插入符中插入html
我有一个具有contenteditable设置的div,并且在按下Enter键时使用jquery捕获了按键,以调用preventDefault()。与这个在光标处插入文本的问题类似 ,我想直接插入html,为简便起见,我们将其称为br标签。使用上述问题的答案实际上在IE中有效,因为它使用range.pasteHTML方法,但是在其他浏览器中,br标签将显示为纯文本而不是html。如何修改答案以插入html而不是text?


4
node.js中fs.createReadStream与fs.readFile的优缺点是什么?
我正在弄乱node.js,发现了两种读取文件并通过有线方式发送文件的方法,一旦我确定它存在并使用writeHead发送了正确的MIME类型: // read the entire file into memory and then spit it out fs.readFile(filename, function(err, data){ if (err) throw err; response.write(data, 'utf8'); response.end(); }); // read and pass the file as a stream of chunks fs.createReadStream(filename, { 'flags': 'r', 'encoding': 'binary', 'mode': 0666, 'bufferSize': 4 * 1024 }).addListener( "data", function(chunk) …
74 javascript  file  node.js  fs 

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.