在浏览Chrome时,我注意到它在呈现页面方面反应非常快(与我的笔记本电脑上的IE和Firefox相比),包括像gmail这样的JavaScript重量级网站.
这就是Chrome上googlebook所说的内容
所有这些听起来都很熟悉,微软长期以来一直在做这些事情.Windows os,C++,C#等编译器,CLR等等.
那么为什么微软或任何其他浏览器供应商都没有采用Chrome的方法呢?Chrome的方法有缺陷吗?如果没有,是否有其他浏览器供应商社区没有意识到Google的方法?
原始问题:
WebResource.axd url生成有一个奇怪的错误.(它似乎与相当常见的"WebRsource.axd Padding无效且无法删除"问题有关).
我们有一个ASP.NET网页,在创建时,会向WebResource.axd添加一个脚本引用.
在这种情况下,我们看到WebResource.axd链接偶尔会变成某个点的垃圾,取而代之的是看似javascript的东西.更糟糕的是,网址生成失败似乎是不一致的.
在我们的例子中,链接应该(而且通常不会像):
/WebResource.axd?d=D-wd7RbHCvSp_p0mHAmE4g2&t=633464867255568315
Run Code Online (Sandbox Code Playgroud)
一切都很好.但是,我们收到用户记录的错误...以及他们尝试访问的网址(在一种情况下):
/WebResource.axd?d=D-wd7RbHCvS/../../images/icons/Ico_resize.gif')}}function%20ShowFilter_Manufacturer(){var%20div.......
Run Code Online (Sandbox Code Playgroud)
[该链接中剩余的已编码的javascript已被删除为无关]
更奇怪的是,我们从同一个用户那里快速连续获得了一些这些用户,他们显然正在尝试重新加载页面...每个网址略有不同.
/WebResource.axd?d=D-wd7RbHCvS<garbage>
/WebResource.axd?d=D-wd7RbHCvSp<garbage>
/WebResource.axd?d=D-wd7RbHCvSp_<garbage>
Run Code Online (Sandbox Code Playgroud)
在某些情况下,垃圾是编码的JavaScript,我已经看到了网址的一部分...完全空的参数字符串...我没有看到明显的模式.
顺便说一下,如果它是相关的,应该注意的是,我不相信这个WebResource不是一个除了在页面上包含某些功能时由.NET自动包含的股票WebResource ......在这种情况下,一个字段验证器.查看实际WebResource.axd的内容,可以看到非常标准的Javascript函数集,这些函数似乎是为处理泛型.NET事件而设计的.不是我们创造的任何东西.
有没有人见过这样的东西?(或者更好,是否有人理解为什么会发生这种情况,并提出消除它的方法?)
编辑0:一些其他信息:
第1项:在回答一个答案时,我们确保我们的脚本包含CDATA标签,因为我们的doctype是xhtml transitional:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
不幸的是,尽管我们寄予厚望,但它似乎并没有解决问题.我们已经更多地注意到IE 8作为一个浏览器,这可以让人相信这是与浏览器相关的想法...也许是浏览器解析流的方式......但为什么我们会得到微妙的不同响应随后的尝试让我感到困惑.
第2项:事实证明,省略的部分似乎是相当规则的块.有人报告说他看到丢失了1k或4k的区块,而我(到目前为止......我只看了两个案例)会同意(我的两个数据都丢失了4096字节).
我只是遇到了一个奇怪的事情...我们网站上有一些代码正在处理一个巨大的SQL语句,通过执行一些搜索来修改代码并根据某些用户值进行替换,然后将其传递给SQL Server一个问题.
我认为这将作为存储过程的参数化查询更清晰,用户值作为参数,但当我仔细观察时,我明白为什么他们可能会这样做...他们从中选择的表是可变地依赖于那些用户值.
例如,在一种情况下,如果值为("FOO","BAR"),则查询最终会变为"SELECT*FROM FOO_BAR"
有一个简单明了的方法吗?我正在尝试的一切似乎都不优雅.
编辑:当然,我可以动态生成存储过程中的sql,并执行(bleh),但那时我想知道我是否获得了任何东西.
EDIT2:以一种聪明的方式重构表名,比如将它们全部放在一个表中,不同的名称作为新列将是一个很好的方法来解决所有这些,这是几个人直接指出或暗示的.可悲的是,在这种情况下,它不是一种选择.
关于从有限集中获取随机值的这个问题让我思考......
人们想要从一组Y值中检索X个唯一值是相当普遍的.例如,我可能想从一副牌中交出一手牌.我想要5张牌,我希望它们都是独一无二的.
现在,我可以天真地做到这一点,通过挑选一张随机卡5次,每次重复时再试一次,直到我得到5张牌.然而,对于大型集合中的大量值,这并不是那么好.例如,如果我想从一组1,000,000中获得999,999个值,则此方法会变得非常糟糕.
问题是:有多糟糕?我正在找人解释一个O()值.获得第x个数字将需要y次尝试...但有多少?我知道如何解决任何给定的值,但是有一种直接的方法可以推广整个系列并得到一个O()值吗?
(问题不是:"我怎样才能改进这个?"因为它相对容易修复,而且我确信它在其他地方已被多次覆盖.)
我有一个2D游戏,其中我只使用鼠标作为输入.我怎样才能使鼠标悬停在Texture2D对象上,Texture2D和鼠标光标发生变化,当单击纹理时,它移动到另一个地方.
简单地说,当我将鼠标悬停在纹理2上时,我想知道如何做某事.
我在一个例子中遇到了红宝石
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
Run Code Online (Sandbox Code Playgroud)
你为什么要用!!?是不是一样的
return self.roles.find_by_name(role.to_s.camelize)
Run Code Online (Sandbox Code Playgroud)
添加双重感叹号是否会为评估添加一些内容?
我正在编写一个C#例程来调用存储过程.在我传入的参数列表中,其中一个值可能合法地为空.所以我以为我会使用这样的一行:
cmd.Parameters.Add(new SqlParameter("@theParam", theParam ?? DBNull.Value));
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会返回以下错误:
CS0019:运营商'??' 不能应用于'string'和'System.DBNull'类型的操作数
现在,这似乎已经足够清楚,但我不明白其背后的基本原理.为什么这不起作用?(通常情况下,当我不明白为什么某些东西不能正常工作时,并不是它无法正常工作......而是我做错了.)
我是否真的需要将其延伸到更长的if-then声明中?
编辑:(顺便说一句,对那些建议只使用"null"的人,它不起作用.我原来认为null也会自动翻译成DBNull,但它显然没有.(谁知道?))
我试图找出一种优雅的方式从文本列中获取具有类似"YYYYMMDD"的数据的日期...所以我们可能会在列中看到"20060508"作为值,我希望能够从查询返回为日期(2006年5月8日).
我确信如果有足够的时间,我可以一起破解一些东西,但我想到的方法看起来非常糟糕,我怀疑有一种方法可以在一个查询中优雅地完成.
有什么建议?
我在我的.NET应用程序中创建了一个强类型数据集(MyDataSet).为简单起见,我们假设它有一个DataTable(MyDataTable),一列(MyCol).MyCol的DataType属性设置为"System.Int32",其AllowDBNull属性设置为"true".
我想手动创建一个新行,并将其添加到此数据集中.我创建了没有问题的行,例如:
MyDataSet.MyDataTableRow myRow = MySimpleDataSet.MyDataTable.NewItemRow();
Run Code Online (Sandbox Code Playgroud)
精细.但是,当我尝试将值设置为DBNull时:
myRow.MyCol = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)
我被告知我不能这样做......它无法将其转换为int.从某种意义上说,这是有道理的,因为我已经将它定义为一个int ...但是我怎么能在那里获得DBNull呢?我不应该在那里有DBNull吗?这不是AllowDBNull属性的用途吗?
我显然错过了一些有趣的东西.有人可以帮忙解释它是什么吗?
编辑:我也试过输入"int?" 作为DataType,但是当我输入它时,Visual Studio会抛出一个错误,说"Column需要一个有效的DataType".