Tag: JavaScript

如何在ASP.NET MVCvalidation期间提供警告?

有时用户input不是严格无效的,但可以认为是有问题的。 例如: 用户在单行Name字段中input一个长句子。 他可能应该使用Description字段 。 用户input一个与现有实体非常相似的Name 。 也许他在input相同的实体,但没有意识到它已经存在,或者一些并发用户刚刚进入它。 其中一些可以很容易地检查客户端,一些需要服务器端检查。 什么是最好的方法 ,或许类似于DataAnnotationsvalidation, 在这种情况下向用户提供警告? 这里的关键是,用户必须能够覆盖警告,并仍然提交表单(或重新提交表单,具体取决于实施)。 想到的最可行的解决scheme是创build一些属性,类似于一个CustomValidationAttribute ,可能会使AJAX调用,并会显示一些警告文本,但不会影响ModelState 。 预期的用法是这样的: [WarningOnFieldLength(MaxLength = 150)] [WarningOnPossibleDuplicate()] public string Name { get; set; } 在看法: @Html.EditorFor(model => model.Name) @Html.WarningMessageFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) 那么,有什么想法?

为什么没有WebSockets的同源策略? 为什么我可以连接到ws:// localhost?

我想为我的应用程序使用WebSockets进行进程间通信(守护进程< – > WebGUI和守护进程< – > FatClient等)。 在testing期间,我尝试通过websocket.org上的JavaScript WebSocket客户端( http://www.websocket.org/echo.html )连接到本地运行的Web套接字服务器(ws:// localhost:1234)。 我现在的问题是: 为什么这可能? 在浏览器中是否没有实施跨源策略(这里是Linux上的FF29)? 我问,因为如果websocket.org是邪恶的,它可以尝试与我的本地WS服务器进行通信,并redirect它从本地收到的每个消息到任何其他服务器: 本地WebSocket服务器浏览器恶意Web服务器 在http://evil.tld的ws:// localhost:1234 | | | | | —— [GET /] ———> | | | <—– [HTML + EvilJS] —- | | <—— [连接ws:// ..] —- | | | <—- [某个通讯] – > | | | | —- [邪恶转] […]

React – 在挂载的组件上设置setState()

在我的反应组件im试图实现一个简单的微调,而ajax请求正在进行 – 即时通讯使用状态来存储加载状态。 出于某种原因,下面这段代码在我的React组件中会引发这个错误 只能更新已安装或已安装的组件。 这通常意味着您在卸载的组件上调用了setState()。 这是一个没有操作。 请检查未定义组件的代码。 如果我摆脱了第一个setState调用错误消失。 constructor(props) { super(props); this.loadSearches = this.loadSearches.bind(this); this.state = { loading: false } } loadSearches() { this.setState({ loading: true, searches: [] }); console.log('Loading Searches..'); $.ajax({ url: this.props.source + '?projectId=' + this.props.projectId, dataType: 'json', crossDomain: true, success: function(data) { this.setState({ loading: false }); }.bind(this), error: function(xhr, status, err) […]

什么是“var _gaq = _gaq ||” ; “为?

Google Analytics中的asynchronous跟踪代码如下所示: var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); 关于第一行: var _gaq = _gaq || []; 我认为它确保如果_gaq已经被定义,我们应该使用它,否则我们应该是一个数组。 任何人都可以解释这是什么? 另外,如果_gaq被重命名,这是否重要? 换句话说,Google Analytics(分析)是否依赖名为_gaq的全局对象?

日历事件的可视化。 用最大宽度布局事件的algorithm

我需要你的一个algorithm的帮助(这将在客户端与JavaScript开发,但并不重要,我最感兴趣的algorithm本身)布置日历事件,以便每个事件框具有最大宽度。 请看下面的图片: Y轴是时间。 所以如果“testing事件”从中午开始(例如),没有更多的交叉,它占用了整个100%的宽度。 “每周回顾”与“摇摇欲坠基督教青年会”和“安娜/阿米莉亚”相交,但后两者不相交,所以他们都填满了50%。 Test3,Test4和Test5都是相交的,所以最大宽度为33.3%。 但Test3是66%,因为Test3是固定的33%(见上面),所以它占用了所有可用空间,这是66%。 我需要一个algorithm来阐明这一点。 提前致谢

AngularJS ng-click转到另一个页面(使用Ionic框架)

理想情况下,当我点击button(在顶部的离子导航栏中),它应该把我带到另一个页面。 然而它不工作。 点击后,导航栏button全部消失。 当我使用虚拟代码,它的工作原理; 警报出现。 但是,当我将其交换到实际的代码,它无法正常工作。 我对控制器代码有一些错误的感觉,以及如何引用URL或视图。 但是使用href和ui-sref进行testing也不会产生任何结果。 Google Devt Tools(JS控制台)和Batarang也没有显示任何内容。 有人能告诉我的方式吗? 虚拟html代码 <button class="button button-icon ion-compose" ng-click="create()"></button> 虚拟控制器代码在js文件中 $scope.create = function() { alert("working"); }; 实际的HTML代码(我尝试了所有4个版本) <button class="button button-icon ion-compose" ng-click="create('tab.newpost')"></button> <button class="button button-icon ion-compose" ui-sref="tab.newpost"></button> <button class="button button-icon ion-compose" href="/tab/newpost"></button> <button class="button button-icon ion-compose" ng-click="location.path('/tab/newpost')"></button> 控制器文件(Post和Auth依赖性工作正常)。 当我尝试将URL放在.go()和function()中时,应用程序失败。 app.controller('NavCtrl', function ($scope, $location, $state, Post, Auth) […]

如何在浏览器中需要CommonJS模块?

在浏览器中加载CommonJS模块作为客户端JavaScript的最佳方式是什么? CommonJS模块将它们的function放在module.exports命名空间中,通常包含在服务器端脚本中使用require(pathToModule) 。 在客户端加载它们不能以同样的方式工作(需要被replace,需要考虑asynchronous性等) 我发现了模块加载器和其他解决scheme:Browserify,RequireJS,yabble等或简单地更改模块的方法。 你认为最好的方法是什么?为什么?

在更改密码和注销node.js时使JWT无效的最佳实践?

我想知道的最佳实践,无需更改密码/注销时db分配JWT无效。 我有下面的想法通过点击用户数据库来处理上述2个案例。 1.密码更改的情况下,我检查存储在用户数据库中的密码(散列)。 2.退出login时,我将最后退出时间保存在用户数据库中,因此通过比较令牌创build时间和退出时间,我可以使这种情况失效。 但是,这两种情况是以每次用户点击api时触及用户db为代价的。 任何最佳实践表示赞赏。 更新:我不认为我们可以使JWT无效,而不击中分贝。 所以我想出了一个解决scheme。 我已经发布了我的答案,如果您有任何疑虑,欢迎您。

如果我已经在使用Modernizr,那我还需要HTML5 Shiv吗?

1)如果我已经在使用Modernizr,那么我是否还需要HTML5 Shiv来支持IE5的HTML5标签? 2)HTML5 Shiv仅适用于IE,还是适用于所有没有原生HTML 5支持的浏览器? 像旧版本的Firefox,Safari,Chrome等?

你可以强制Vue.js重新加载/重新渲染?

只是一个简单的问题。 你能强制Vue.js重新加载/重新计算一切吗? 如果是这样,怎么样?