小编Bra*_*118的帖子

JavaScript:客户端与服务器端验证

哪个更好做客户端或服务器端验证?

在我们的情况下,我们正在使用

  • jQuery和MVC.
  • 要在View和Controller之间传递的JSON数据.

我做的很多验证都是在用户输入数据时验证数据.例如,我使用该keypress事件来防止文本框中的字母,设置最大字符数以及数字在一个范围内.

我想更好的问题是,在客户端进行服务器端验证有什么好处吗?


很棒的回答每个人.我们拥有的网站受密码保护,用户群较小(<50).如果他们没有运行JavaScript,我们将发送忍者.但如果我们为每个人设计一个网站,我同意在双方进行验证.

javascript security validation

170
推荐指数
7
解决办法
12万
查看次数

搜索元素的后代

量角器什么是选择子元素的最佳方式?假设我们有以下布局......

<div id='parent_1'>
    <div class='red'>Red</div>
    <div class='blue'>Blue</div>
</div>
<div id='parent_2'>
    <div class='red'>Red</div>
    <div class='blue'>Blue</div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用jQuery,我们会做这样的事情.

var p1 = $('#parent_1');
var p1_red = $('.red', p1);  //or p1.find('.red');
var p1_blue = $('.blue', p1); //or p1.find('.blue');
Run Code Online (Sandbox Code Playgroud)

但是使用Protractor,首先获得父元素是否有意义?因为这样做var p1 = element('#parent_1');实际上不会检索/搜索对象,直到getText()调用它为止.

这样做..

场景1

expect(p1.element('.red')).toBe('red');
expect(p1.element('.blue')).toBe('blue');
Run Code Online (Sandbox Code Playgroud)

要么

情景2

expect(element('#parent_1').element('.red')).toBe('red');
expect(element('#parent_1').element('.blue')).toBe('blue');
Run Code Online (Sandbox Code Playgroud)

要么

场景3

expect(element('#parent_1 > .red')).toBe('red');
expect(element('#parent_1 > .blue')).toBe('blue');
Run Code Online (Sandbox Code Playgroud)

一种方法相对于另一种方法有什么好处吗?

这就是我正在做的事情,但我不知道将父母与cssSelector分开是否有任何好处:

function getChild(cssSelector, parentElement){
    return parentElement.$(cssSelector);
}

var parent = $('#parent_1');
var child_red = getChild('.red', parent);
var child_blue = getChild('.blue', parent); …
Run Code Online (Sandbox Code Playgroud)

element parent-child chaining protractor

46
推荐指数
1
解决办法
4万
查看次数

Javascript Date()构造函数不起作用

我有一个问题 -

javascript Date("mm-dd-yyyy")构造函数不适用于FF.它适用于IE.

  • IE:new Date("04-02-2008")=>"Wed Apr 2 00:00:00 EDT 2008"
  • FF2:new Date("04-02-2008")=>Invalid Date

所以我们试试另一个构造函数.试试这个构造函数Date("yyyy", "mm", "dd")

  • IE:new Date("2008", "04", "02");=>"Fri May 2 00:00:00 EDT 2008"
  • FF:new Date("2008", "04", "02");=>"Fri May 2 00:00:00 EDT 2008"
  • IE:new Date("2008", "03", "02");=>"Wed Apr 2 00:00:00 EDT 2008"
  • FF:new Date("2008", "03", "02");=>"Wed Apr 2 00:00:00 EDT 2008"

因此Date("yyyy", "mm", "dd")构造函数使用索引0来表示January. …

javascript

29
推荐指数
2
解决办法
5万
查看次数

什么是Exception的.ToString()和.Message之间的区别?

我正在查看一些代码,我发现了e.ToString(),我想知道使用ToString()方法而不是.Message是否有区别?

阅读下面,听起来它返回更多信息.

来自微软的文档

.NET Compact Framework支持的ToString.覆盖.创建并返回当前异常的字符串表示形式.

.NET Compact Framework支持的消息.获取描述当前异常的消息.

c# exception

21
推荐指数
3
解决办法
1万
查看次数

我可以在模型更新时阻止/延迟AngularJS $摘要的发生

有没有办法推迟或推迟摘要的发生?

我想对模型进行一些更改但我不希望在对模型进行所有更改之前触发摘要.模型上的一些对象具有更新模型上其他对象以进行更改的观察者.

理想情况下我想

  • 停止$摘要
  • 对模型进行所有更改
  • 启动$ digest

$ digest将找到所有脏对象并激活观察者.

对此的另一个解决方案是,而不是停止$ digest我可以

  • 删除观察者
  • 对模型进行所有更改(摘要仍然运行)
  • 添加已删除的观察者

添加观察者后,我需要运行观察者方法以确保模型处于正确状态.

我觉得第二个选项看起来像是一个黑客.

想法?

model digest angularjs

19
推荐指数
1
解决办法
1万
查看次数

为什么我不能创建一个Serializable类?

我在我的视图状态中存储了一些对象,我想知道创建一个类是否有任何缺点Serializable

制作所有课程是不好的做法Serializable吗?

c# asp.net serializable

11
推荐指数
1
解决办法
8301
查看次数

jQuery - 实时验证插件

我正在寻找一个jQuery的插件,可以在按下键并且失去焦点(文本框)后进行验证.

我目前正在使用jVal - jQuery表单字段验证插件.它的效果非常好.我唯一的问题是我只能使用通用错误消息.

例如:我需要一个2到5个字符的字符串.如果它太短我想显示一条错误信息,表明它是短路的,如果它太长也是如此.我知道我可以显示一条错误消息,要求字符串在2到5个字符之间. 正在进行的验证更复杂.

其他验证器的任何想法或我如何使用此插件来显示唯一的错误消息.


编辑:

验证工具需要防止特定的字母或数字,而不需要表格.

谢谢

validation jquery plugins

9
推荐指数
1
解决办法
2万
查看次数

使用断点来调试IE和VS2008中的Javascript

我无法在Studio中使用Javascript的断点.如果我使用调试器,我可以调试;

我已经看到这个断点在VS.Net 2005问题调试时没有联系起来.我尝试了答案但没有用.

查看模块窗口,正确加载V.Mvc.Jobtrakt.PDB,但它指向临时文件夹C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\dbc0c0c5\f64a99b3\assembly\dl3\9de055b3\eb1303b1_9760c901\V.Mvc.Jobtrak.pdb:符号已加载.

我原以为它会指向:\ JobTrak\Website\V.Mvc.Jobtrak\V.Mvc.Jobtrak\_ obj\Debug(这是在项目目录中)

但无论位置如何,我关闭了VS 2008,然后吹走了临时文件夹(上面列出的),bin和obj文件夹.

打开VS 2008并干净利落.我在js中设置了一个断点,它似乎现在可以正常工作(断点被填入)开始调试并且它永远不会在断点处中断.看看断点,它现在是一个带有红点和警告指示的红色圆圈.将鼠标悬停在断点上会给我一些有用的信息:断点当前不会被击中.该位置无法映射到客户端脚本.请参阅ASPX断点映射的帮助.我没有被重定向,断点与函数有关.等等,这应该是有效的.

所以我想知道是否有人有任何想法?有人能够在VS2008中设置断点并让它们工作吗?

javascript breakpoints visual-studio-2008

8
推荐指数
2
解决办法
1万
查看次数

将xsl嵌入到XML文件中

我正在尝试将xsl嵌入到XML文件中.这样做的原因是创建一个可以移动到不同计算机的单个文件,这将阻止移动xsl文件的需要.

xsl文件正在创建一个表并从xml中获取测试步骤以及它是通过还是失败,非常简单.
我认为,我遇到的问题是xsl有javascript,并且在IE中加载xml时会显示它.

当我用IE加载xml文件时,javascript显示在表格上方,在表格下方显示xml.

这是我的文件的布局:

<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet
  id    ID  #REQUIRED>
]>

<doc>    

<xsl:stylesheet id="4.1.0" 
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    xmlns:user="http://www.ni.com/TestStand" 
    xmlns:vb_user="http://www.ni.com/TestStand/" >

<xsl:template match="xsl:stylesheet" />
     <xsl:text disable-output-escaping="yes">

    <msxsl:script language="vbscript" implements-prefix="vb_user">
        option explicit
        'This function will return the localized decimal point for a decimal number
        Function GetLocalizedDecimalPoint ()
            dim lDecPoint
            lDecPoint = Mid(CStr(1.1),2,1)
            GetLocalizedDecimalPoint = lDecPoint
        End Function
    </msxsl:script>
    <msxsl:script language="javascript" implements-prefix="user"><![CDATA[
        // This style sheet will not show tables instead of graphs for arrays of values if 
        // 1. …
Run Code Online (Sandbox Code Playgroud)

javascript xml embed xslt internet-explorer

6
推荐指数
1
解决办法
9239
查看次数

我可以使用Node.js调用C#方法吗?

我正在一个Webforms项目上,正在研究实现node.js和issnode。我们正在使用:

  • 网络表格
  • IIS
  • C#
  • 实体框架
  • SQL服务器

我们有一个页面需要一段时间才能加载,并且正在寻找提高速度的方法。页面上显示了一些计数,这些计数很有用,但会导致页面加载缓慢。(我们将显示任务总数,组中的人数和组数)。

我以为我可以直接从node.js文件中调用我的C#代码。从我看过的示例以及我读过的内容来看,似乎并不是我应该寻找的解决方案。由于我们使用的是EF并且我没有编写SQL查询,因此看起来我应该与服务进行交互。

所以我的问题是,我可以使用Node.js调用C#方法吗?

c# node.js iisnode

1
推荐指数
1
解决办法
3757
查看次数

运行量角器测试接收错误"ReferenceError:模块未定义"

我正在尝试在Windows机器上设置Protractor测试.我已经启动并运行了服务器,但是当我进行测试时,它失败并且我收到以下错误:ReferenceError:modules not defined"

我正在使用PageObject模式来构建我的测试和测试框架.

在我的测试文件中,我有:

describe('Ticket', function(){
    var etPage = require('ticket-page.js');

    beforeEach(function () {
        etPage.get();
    });

    it('Should set Action', function(){
        browser.debugger();
        etPage.setTicketId(1);
    });
};
Run Code Online (Sandbox Code Playgroud)

并在Ticket-page.js类中

var EquityTicketPage = function () {
    this.ticketWrapper = null;

    this.setTicketId = function(id){
        this.ticketWrapper = driver.element(By.ByCssSelector('[data-ticket-id="' + id + '"]'));
    };

    this.get = function () {
        browser.ignoreSynchronization = true;
        browser.get('http://deleted');
    };
};

modules.exports = new EquityTicketPage();
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪指向"modules.exports = new EquityTicketPage();" 在tickets-page.js文件中.我不确定它在这条线上的失败.对于这些文件,可能没有正确设置/引用节点.也许它在我的机器上没有正确设置.

我看到了这个问题,并认为配置可能有问题.我的node_modules文件夹中没有grunt-karma版本,我不知道是否需要它.

然后看着这个问题,我想我的配置文件中可能需要一些内容,并注意到我没有文件部分.文件部分指向代码文件所以我应该没问题.

这是我的配置

// A reference configuration …
Run Code Online (Sandbox Code Playgroud)

testing node.js angularjs angularjs-e2e protractor

1
推荐指数
1
解决办法
8831
查看次数