小编Jef*_*ang的帖子

JavaScript空白语法错误

为什么这会导致return语句出现语法错误:

var FOO = (function($)
{
    return
    {      
        init: function()
        {

        }
    }
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

然而,这不是:

var FOO = (function($)
{
    return {      
        init: function()
        {

        }
    }
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

为什么会有区别?

javascript syntax formatting jquery whitespace

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

使用xml类型在SQL Server 2005中存储XSLT?

我的ASP.NET Web应用程序中有很多XSL文件.很多.我使用这种通用转换方法生成一堆AJAX HTML响应:

public void Transform(XmlDocument xml, string xslPath) 
{
    ...
    XslTransform myXslTrans = new XslTransform();
    myXslTrans.Load(xslPath);
    myXslTrans.Transform(xml,null, HttpContext.Current.Response.Output);        
}
Run Code Online (Sandbox Code Playgroud)

我想使用xml类型的列将XSL定义移动到SQL Server中.我将整个XSL文件存储在SQL中的单行中,并且每个XSL都是自包含的(无导入).我会将SQL中的XSL定义读出到我的XslTransform对象中.

像这样的东西:

public void Transform(XmlDocument xml, string xslKey) 
{
    ...

    SqlCommand cmd = new SqlCommand("GetXslDefinition");
    cmd.AddParameter("@xslKey", SqlDbType.VarChar).Value = xslKey;
    // where the result set has a single column of XSL: "<xslt:stylesheet>..." 
    ...

    SqlDataReader dr = cmd.ExecuteReader();
    if(dr.Read()) {
        SqlXml xsl = dr.GetSqlXml(0);
        XslTransform myXslTrans = new XslTransform();
        myXslTrans.Load(xsl.CreateReader());
        myXslTrans.Transform(xml,null, HttpContext.Current.Response.Output);     
    }   
}
Run Code Online (Sandbox Code Playgroud)

这似乎是一种直截了当的方式:

  • 向每个XSL添加元数据,如lastUsed,useCount等.
  • 批量更新/搜索功能
  • 防止大量磁盘访问
  • 避免引用相对路径和组织文件
  • 允许XSL更改而无需重新部署(我甚至可以编写一个管理页面来选择/更新数据库中的XSL)

有人曾尝试过这个吗?有什么警告吗? …

sql asp.net xslt sql-server-2005

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

只要有相应的"开始"呼叫,就执行"结束"呼叫

假设我想强制执行一条规则:

每次在函数中调用"StartJumping()"时,必须在返回之前调用"EndJumping()".

当开发人员编写代码时,他们可能只是忘记调用EndSomething - 所以我想让它易于记忆.

我只能想到一种方法:它滥用"using"关键字:

class Jumper : IDisposable {
    public Jumper() {   Jumper.StartJumping(); }
    public void Dispose() {  Jumper.EndJumping(); }

    public static void StartJumping() {...}
    public static void EndJumping() {...}
}

public bool SomeFunction() {
    // do some stuff

    // start jumping...
    using(new Jumper()) {
        // do more stuff
        // while jumping

    }  // end jumping
}
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

c# business-logic

8
推荐指数
5
解决办法
754
查看次数

如何加快群集列的大规模更新?

我有一个非常大的表:超过2000万行,我需要更新大约5% - 或100万行.

不幸的是,我正在更新用作聚簇索引的(int)列.

我的问题是:更新这些行的最快方法是什么?

我试过直接更新行:

update t1
set t1.groupId = t2.groupId
from
    table t1
join newtable t2 on t1.email = t2.email
Run Code Online (Sandbox Code Playgroud)

但这需要太长时间(我在3小时后停止了)

我假设这是因为整个行(有2个日期时间,2个varchars和2个int)正在为每次更新移动.

如果我首先删除聚簇索引,然后执行更新,然后重新创建聚簇索引,该怎么办?会更快吗?

注意:我在电子邮件上有一个非聚集索引,以防有人认为它是查询的选择部分很慢.不是.

sql sql-server indexing performance

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

检测31天的月份

是否有以下代码的类似形式:

if(month == 4,6,9,11)
{
  do something;
}
Run Code Online (Sandbox Code Playgroud)

或者必须是:

if(month == 4 || month == 6 etc...)
{
  do something;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试撰写一份if声明,检查本月是否超过31天.

编辑

我想真正的问题是我不知道我学到了什么,但每次我尝试使用sun网站关于java时它都会让我感到困惑.我的问题是,如果我从一个用户和一天获得一个月的时间,并将其放入MM/dd格式并进行评估,那么是否有更简单的方法来检查月份和日期是否有效以及在我检查之后有效我可以用我所拥有的格式打印MM/dd.如果无效打印一行显示无效的月份或日期.

java if-statement

7
推荐指数
5
解决办法
8104
查看次数

将字符串清理为有效的JSON值

我想清理从数据库中检索的字符串.

我遇到了这个问题,其中属性值(来自数据库的名称)具有嵌入的TAB字符,并且Chrome在尝试加载JSON对象时给了我无效的TOKEN错误.

所以现在,我去了http://www.json.org/,并且它有一个规范.但我无法理解如何使用此规范编写清洁剂:

  • ""
  • " 字符 "

字符

  • 烧焦
  • char chars

烧焦

  • any-Unicode-character- except - " - 或 - 或 - control-character
  • \"
  • \\
  • /
  • \ b
  • \F
  • \n
  • \ r
  • \ t
  • \ u四个十六进制数字

给定一个字符串,我如何"清理"它以便符合此规范?

具体来说,我很困惑:规范是否允许TAB(0x0900)字符?如果是这样,为什么Chrome会出现无效的TOKEN错误?

c# json

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

如何在.NET中实现正则表达式?

我刚刚阅读了这篇有趣的文章,关于支持正则表达式的各种语言的实现细节.

它描述了使用非确定性有限自动机(NFA)与确定性有限自动机(DFA)的正则表达式的替代实现.它声称反向跟踪DFA实现(Perl,Java和其他版本中使用的版本)在一些特别"病态"的正则表达式上容易受到非常慢的性能影响.(grep,awk和Tcl仍然使用DFA,但不知何故以指数方式加快)

它没有引用.NET框架,但我想知道如何实现.NET(特别是C#)正则表达式,以及它们在性能方面的比较.

编辑:

我可以假设,因为回答者的文章提到.NET确实回溯,它将与Perl和Java相提并论吗?

.net c# regex performance grep

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

Microsoft Chart Control:防止系列出现在Legend中

在MS Chart控件(他们从Dundas购买)中,我有三个需要绘制的系列.

其中两个系列应该在Legend中有一个条目,但第三个不应该.

我已经尝试过这些代码行,但都没有工作:

Chart c = new Chart();
ChartArea ca = c.ChartAreas.Add("main");
Legend lg = c.Legends.Add("mainLegend");
Series s1 = c.Series.Add("s1");
Series s2 = c.Series.Add("s2");
Series s3 = c.Series.Add("s3");

// ... populate the 3 series with data...

s1.Legend = "mainLegend";
s2.Legend = "mainLegend";

// I've tried these:
s3.Legend = ""; // gives an error about a nonexistent legend named ''
s3.LegendText = ""; // just shows "s3" in the legend
Run Code Online (Sandbox Code Playgroud)

如何防止系列出现在图例中?

mschart

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

从邻接列表创建树的最有效方法

我有一个对象的邻接列表(从SQL数据库加载的行,带有密钥和它的父键),我需要用它来构建无序树.它保证没有周期.

这花费的时间太长了(在大约5分钟内仅处理了870K节点中的约3K).在我的工作站Core 2 Duo上运行,有足够的RAM.

关于如何加快速度的任何想法?

public class StampHierarchy {
    private StampNode _root;
    private SortedList<int, StampNode> _keyNodeIndex;

    // takes a list of nodes and builds a tree
    // starting at _root
    private void BuildHierarchy(List<StampNode> nodes)
    {
        Stack<StampNode> processor = new Stack<StampNode>();
        _keyNodeIndex = new SortedList<int, StampNode>(nodes.Count);

        // find the root
        _root = nodes.Find(n => n.Parent == 0);

        // find children...
        processor.Push(_root);
        while (processor.Count != 0)
        {
            StampNode current = processor.Pop();

            // keep a direct link to the node via the key …
Run Code Online (Sandbox Code Playgroud)

c# algorithm adjacency-list

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

使用Powershell查找文件中的多行模式

如何使用Powershell在文件中找到多行模式,例如XML节点的内容?

即如果我在deviceDescription节点中寻找"绿色"一词,但XML节点文本可能跨越多行,这不起作用:

dir -r -i *.xml | select-string -Pattern "<deviceDescription>.*green.*</deviceDescription>"
Run Code Online (Sandbox Code Playgroud)

regex powershell pattern-matching

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