Tag: JavaScript

茉莉花JavaScripttesting – toBe vs toEqual

假设我有以下几点: var myNumber = 5; expect(myNumber).toBe(5); expect(myNumber).toEqual(5); 上述两个testing都会通过。 在评估数字时, toBe()和toEqual()之间有区别吗? 如果是这样,我应该使用一个而不是另一个?

噶对testing框架茉莉,摩卡,QUnit

几个问题: Karma和testing框架X(Jasmine,Mocha,QUnit)如何相互关联? Java世界的等价框架是什么? 我假设Jasmine,Mocha,QUnit等于jUnit / TestNG。 噶如何? 我可以运行testing框架X(如茉莉花)没有噶玛? Karma是unit testing还是集成/ e2etesting? 这个参考文献显示的是unit testing,但是这是针对e2etesting的。

用jQueryselect多个类

我有一个很好看,似乎无法find如何在一个jQueryselect器语句中select匹配某些类的所有元素,如: $('.myClass', '.myOtherClass').removeClass('theclass'); 任何想法如何实现这一目标? 唯一的其他select是做 $('.myClass').removeClass('theclass'); $('.myOtherClass').removeClass('theclass'); 但是我正在用相当多的类来做这个,所以它需要很多的代码。

应用程序/ x-javascript和text / javascript内容types之间的区别

这些标题有什么区别? Content-Type: application/javascript Content-Type: application/x-javascript Content-Type: text/javascript 哪一个最好,为什么? 请不要说他们是相同的 – 如果他们是相同的,就不会有两个。 我知道这两个工作 – 但我想知道其中的差异。

预先给数组赋值的最有效的方法

假设我有一个大小为N (其中N > 0 )的数组,是否有一个更有效的方法来预先考虑数组,而不需要O(N + 1)个步骤? 在代码中,基本上,我现在正在做的是 function prependArray(value, oldArray) { var newArray = new Array(value); for(var i = 0; i < oldArray.length; ++i) { newArray.push(oldArray[i]); } return newArray; }

我怎样才能得到Knockout JS数据绑定在按键而不是失去焦点?

这个淘汰赛js的例子,所以当你编辑一个字段,然后按TAB,视图模型数据,因此在字段下面的文本被更新。 我怎样才能改变这个代码,以便每个按键更新视图模型数据? <!doctype html> <html> <title>knockout js</title> <head> <script type="text/javascript" src="js/knockout-1.1.1.debug.js"></script> <script type="text/javascript"> window.onload= function() { var viewModel = { firstName : ko.observable("Jim"), lastName : ko.observable("Smith") }; viewModel.fullName = ko.dependentObservable(function () { return viewModel.firstName() + " " + viewModel.lastName(); }); ko.applyBindings(viewModel); } </script> </head> <body> <p>First name: <input data-bind="value: firstName" /></p> <p>Last name: <input data-bind="value: […]

QuotaExceededError:Domexception22:尝试将某些内容添加到超过配额的存储中

在iOS 7上使用iPhone上的LocalStorage会引发此错误。 我一直在寻找解决scheme,但考虑到我甚至没有私下浏览,没有什么是相关的。 我不明白为什么localStorage在默认情况下会在iOS 7中被禁用,但似乎是? 我也在其他网站上testing,但没有运气。 我甚至尝试过使用这个网站进行testing: http : //arty.name/localstorage.html ,但似乎并不是因为一些奇怪的原因而保存任何东西。 有没有人有同样的问题,只有他们有运气修复它? 我应该切换存储方式吗? 我试图通过只存储几行信息来进行debugging,但无济于事。 我用标准的localStorage.setItem()函数来保存。

用jquery-out-of-the-boxtesting空string的最佳方法是什么?

什么是最好的方式来testing一个空string与jQuery的开箱即用,即没有插件? 我试过这个 。 但是它至less不是现成的。 这将是很好的使用内置的东西。 我不想重复 if (a == null || a=='') 到处都有if if (isempty(a))可用。

AngularJS控制器的生命周期是什么?

有人可以澄清一下AngularJS控制器的生命周期是什么? 控制器是单身人士,还是按需求创build/销毁? 如果是后者,是什么触发了控制器的创build/销毁? 考虑下面的例子: var demoApp = angular.module('demo') .config(function($routeProvider, $locationProvider) { $routeProvider .when('/home', {templateUrl: '/home.html', controller: 'HomeCtrl'}) .when('/users',{templateUrl: '/users.html', controller: 'UsersCtrl'}) .when('/users/:userId', {templateUrl: '/userEditor.html', controller: 'UserEditorCtrl'}); }); demoApp.controller('UserEditorCtrl', function($scope, $routeParams, UserResource) { $scope.user = UserResource.get({id: $routeParams.userId}); }); 例如: 在上面的例子中,当我导航到/users/1 ,用户1被加载,并设置为$scope 。 然后,当我导航到/users/2 ,用户2被加载。 UserEditorCtrl实例是否被重用,或者是创build了一个新实例? 如果是新实例,是什么触发了第一个实例的破坏? 如果它被重用,这是如何工作的? (即,加载数据的方法似乎在创build控制器时运行)

通过S3从Amazon CloudFront提供gzip CSS和JavaScript

我一直在寻找让网站加载速度更快的方法,而我想探索的一种方法是更多地使用Cloudfront。 由于Cloudfront原本不是作为自定义源CDNdevise的,因为它不支持gzip,所以我到目前为止一直使用它来托pipe我的所有图像,这些图像在我的站点代码中由其Cloudfront cname引用,并在远处进行了优化期货头。 另一方面,CSS和JavaScript文件被托pipe在我自己的服务器上,因为直到现在我的印象是他们无法从Cloudfront进行gzip压缩,从gzip(约75%)中获得的收益超过了从使用CDN(约50%):Amazon S3(因此Cloudfront)不支持以标准方式使用浏览器发送的HTTP Accept-Encoding标头来表示对gzip压缩的支持,以及所以他们无法在Gzip上运行组件。 因此,直到现在我还是觉得,人们不得不在两种select之间做出select: 将所有资产移动到Amazon CloudFront并忘记GZipping; 保持组件自我托pipe,并configuration我们的服务器来检测传入的请求,并在适当的时候执行即时的GZipping,这是我select做到目前为止。 有解决方法来解决这个问题,但基本上这些都不起作用 。 [ 链接 ]。 现在,似乎Amazon Cloudfront支持自定义来源,并且现在可以使用标准HTTP Accept-Encoding方法来提供经过压缩的内容,如果您使用自定义来源 [ link ]。 我到目前为止还没有能够在我的服务器上实现新function。 我链接到上面的博客文章,这是我发现的唯一一个细节的变化,似乎暗示,你只能启用gzipping(酒吧解决方法,我不想使用),如果你select自定义起源,我宁愿不要:我发现在我的Cloudfront服务器上托pipe相应的文件更简单,并从那里链接到它们。 尽pipe仔细阅读文档,我不知道: 新function是否意味着这些文件应该通过自定义来源托pipe在我自己的域服务器上 ,如果是这样的话,代码设置将实现这一点; 如何configurationCSS和JavaScript头,以确保他们从Cloudfront gzip服务。