我喜欢在我的Razor视图中使用partials.它使代码更好,更干净.但是使用partials有任何显着的性能成本吗?我创建了一个简单的测试.它表明使用partials 要慢得多.
test.cshtml:
@{
var stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
for(var i=0; i<1000; i++) {
var str = "my string #" + i;
@Html.Partial("_MyPartial",str) // replace with @str on second test
<br />
}
stopwatch.Stop();
<br />
@: Time elapsed (ms): @(stopwatch.ElapsedMilliseconds)
}
Run Code Online (Sandbox Code Playgroud)
_MyPartial.cshtml:
@Model
Run Code Online (Sandbox Code Playgroud)
部分执行的代码在340毫秒,而内联@str代码显示0或1毫秒.这对我来说真的很震撼,因为这意味着我应该摆脱所有可爱的局部,至少在循环中.
如果有人想确认或批评我的实验,我们非常欢迎您.
Web服务器生成图像并直接将它们发送到客户端.出于安全原因,图像没有URL.例如,如果我/images/25在浏览器服务器中输入URL将发送它,浏览器将下载它.
现在我想从Ajax调用中获取此图像,然后将其显示在现有页面上.我可以得到图像数据.我的问题是:如何显示图像?
$.get("/images/25", function (rawImageData) {
// ??? Need to add an image to DOM
});
Run Code Online (Sandbox Code Playgroud)
更新
我为这么愚蠢而道歉.谢谢你,JW.当然我可以将带有src的img标签放到我的URL中.如果这是图像文件的直接URL或服务器动态发送它并不重要.
A在我的视图控制器中有很多子视图,我在故事板中设计了autolayout.这些子视图不适合视图控制器框.我只能使这些子视图适合视图控制器,如果我使它们小于它们的实际宽度/高度约束值.但如果我这样做 - 它会显示"错位视图"警告.我已经有25个,它开始变得凌乱.
如果我可以在故事板中增加此视图控制器框的高度,那将会很方便.可能吗?
我只是在谈论故事板中的设计,而不是应用程序中的实际视图控制器.
在向iTunes连接提交iOS应用程序时,是否可以排除 3.5"设备?我不想支持此屏幕尺寸,只需4"及以上.
我正在尝试配置IIS 7.5以压缩静态htm和js文件.有谁知道它为什么不适合我?这是我的网站web.config:
<httpCompression>
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="false" />
Run Code Online (Sandbox Code Playgroud)
当我将doDynamicCompression设置为true时,压缩开始工作.但我不能使用此选项,因为它在我的主机上被禁用.
谢谢.
我有两个包含数组的哈希。就我而言,数组元素的顺序并不重要。有没有一种简单的方法可以在 RSpec2 中匹配此类哈希?
{ a: [1, 2] }.should == { a: [2, 1] } # how to make it pass?
Run Code Online (Sandbox Code Playgroud)
聚苯乙烯
有一个数组匹配器,它忽略顺序。
[1, 2].should =~ [2, 1] # Is there a similar matcher for hashes?
Run Code Online (Sandbox Code Playgroud)
解决方案
该解决方案对我有用。最初由 tokland 建议,已修复。
RSpec::Matchers.define :match_hash do |expected|
match do |actual|
matches_hash?(expected, actual)
end
end
def matches_hash?(expected, actual)
matches_array?(expected.keys, actual.keys) &&
actual.all? { |k, xs| matches_array?(expected[k], xs) }
end
def matches_array?(expected, actual)
return expected == actual unless expected.is_a?(Array) && actual.is_a?(Array)
RSpec::Matchers::BuiltIn::MatchArray.new(expected).matches? actual
end
Run Code Online (Sandbox Code Playgroud)
使用匹配器:
{a: …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个CSS框架来设置表单元素和列表的样式,这些元素和列表在小屏幕上很容易使用.它需要是一个只有CSS的框架,很少或没有JavaScript.像Twitter Bootstrap这样的东西.我不想要像jQueryMobile这样的JavaScript密集型框架.不需要响应式布局和网格支持.
我需要在MiniTest的所有测试中在每次测试之前运行代码.
在我做之前:
MiniTest::Unit::TestCase.add_setup_hook do
...code to run before each test
end
Run Code Online (Sandbox Code Playgroud)
将MiniTest升级到版本4.7.2后,显示以下错误:
undefined method `add_setup_hook' for MiniTest::Unit::TestCase:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
我正在使用Ruby MRI 2.0.0p0.
解
module MyMinitestPlugin
def before_setup
super
# ...code to run before all test cases
end
def after_teardown
# ... code to run after all test cases
super
end
end
class MiniTest::Unit::TestCase
include MyMinitestPlugin
end
Run Code Online (Sandbox Code Playgroud)