.NET 4有一个Class - Task.这很有趣,我想开始使用它.例如,我想创建一个非常简单的基于任务的文件下载器,可以在每次下载时取消.任何人都可以向我介绍一些这样做的示例代码吗?我想有一个正在运行的任务列表,并希望能够取消它们中的任何一个.
PS Code示例可能无法正常运行我只想知道如何以最佳方式使用这些东西.
我在我的页面上放了很多文本框,所有文本框都有相同的类.myClass.
我想检查是否所有内容都填写完毕.我如何通过jQuery找到?
我有一个现有的Asp.Net MVC网站,我也想从同一个域提供一个Web服务.
在此场景中创建Web服务的最佳方法是什么?
我是否会添加到此项目或...?
我有一个C#类看起来有点像:
public class MyClass
{
private Func<IDataCource, object> processMethod = (ds) =>
{
//default method for the class
}
public Func<IDataCource, object> ProcessMethod
{
get{ return processMethod; }
set{ processMethod = value; }
}
/* Other details elided */
}
Run Code Online (Sandbox Code Playgroud)
我有一个IronPython脚本,可以在应用程序中运行
from MyApp import myObj #instance of MyClass
def OtherMethod(ds):
if ds.Data.Length > 0 :
quot = sum(ds.Data.Real)/sum(ds.Data.Imag)
return quot
return 0.0
myObj.ProcessMethod = OtherMethod
Run Code Online (Sandbox Code Playgroud)
但是当ProcessMethod被调用(在IronPython之外)时,在这个赋值之后,运行默认方法.
我知道脚本是运行的,因为脚本的其他部分都有效.
我该怎么做?
在尝试减少网页的HTML大小时,我遇到了谷歌和PageSpeed Firefox Add-On的建议,这些建议使CSS选择器的效率降低(几乎)让我重新考虑这些变化:
http://code.google.com/intl/de-DE/speed/page-speed/docs/rendering.html#UseEfficientCSSSelectors
具体来说,后代选择器非常适合使用ID或CLASS属性选择整个块(例如DIV),然后保持其所有子元素不具有CLASS/ID属性.但是,如果应用规则的遍历顺序如Google所述,则不应使用它们:
后代选择器是低效的,因为对于与键匹配的每个元素,浏览器还必须遍历DOM树,评估每个祖先元素,直到找到匹配或到达根元素.密钥越不具体,需要评估的节点数就越多.
我非常怀疑浏览器使用这种低效的遍历顺序,当然它们只会处理与顶部选择器组件匹配的元素子树,即#foo span {...} 只应检查#foo下面的元素而不是每一个跨度.任何看过最近的浏览器代码的人都可以确认/否认这个吗?
第二个值得怀疑的建议是关于过度合格的选择者:
根据定义,ID选择器是唯一的.包含标记或类限定符只会添加需要不必要地评估的冗余信息.
如果ID选择器的定义是唯一的,为什么浏览器需要检查冗余信息?我知道他们这样做是因为,例如,
div#foo {color:black; } #foo {color:white; }
将导致a中的黑色文本<div id=foo>,但a)它不应该完成(需要W3C引用)和b)我不明白为什么它会导致对元素的简单O(1)检查明显变慢标签名称.
任何与现代浏览器源代码保持良好关系的人都可以对这些说法有所了解吗?由于大多数现代网站使用后代选择器(包括SO)并且它们具有明显的优势,我非常希望使用它们......
编辑:
我已经对生成的页面进行了一些实验,看起来浏览器对后代选择器的处理确实很可怜:
由(缩写)组成的页面:
#top a {text-decoration:none;}
#foo1 a.foo {color:red;}
#foo2 a.foo {color:red;}
[...重复10000次]
<body id = top>
<div> ... [嵌套50次] <a href=foo> bla </a> </ div> [...]
[前一行重复10000次]
(基本上是10000行,每行有50个嵌套的div,直到根节点和1个与10000匹配的选择器)
window.onload()使用Safari 5在2.2秒内加载和渲染(执行时间),使用Firefox 3.6.10只需不到10秒.
当.foo从非应用规则中删除类选择器时,使用Safari 5时页面大约需要200秒,使用Firefox 3.6.10需要96秒.这说明了后代选择器的实现有多糟糕(在这种情况下,10000规则中的每一个都可能导致遍历直到#top,其中规则失败).
儿童选择器的票价如何?#foo > span > div > div > div > div > div a {color: red;}(也永远不会匹配,但强制遍历6个父节点)Safari 5需要27秒,Firefox 3.6.10需要31秒.
结论
后代和儿童选择器目前都在主流浏览器上吮吸.如果您关心速度,至少对于非常常见的HTML标记(例如,img,div等),最好将丑陋的class/id属性添加到所有样式标记中.
当你拥有的是一对断线钳和一瓶伏特加酒时,一切看起来就像是Wolf Blitzer船库门上的锁.(如果你不读xkcd,用锤子和钉子代替)
我目前正在编写Clojure,Python,Java和PHP,所以我熟悉C和LISP语法以及空白事物.我知道命令式,功能性,不可变性,OOP和几种类型的系统和其他东西.现在我想要更多!
什么是采用不同方法的语言,对实际工具选择或理论理解有用?
我不想学习另一种函数式语言(Haskell)或其他命令式OOP语言(Ruby),也不想练习像Brainfuck这样不切实际的有趣语言.
我发现自己的一个非常有趣的事情是基于单声道堆栈的语言,如Factor.
只有当我觉得我理解了大多数概念并对我的所有问题都有答案时,我才想开始考虑我自己的玩具语言,以包含我所有的个人喜好.
我想知道在代码中使用未使用的函数会产生什么后果?
如果你追捕并删除所有未使用的函数和变量,那么性能会有任何令人难以置信的改善吗?
或者只是删除未使用的函数和变量的好习惯?
我正在开发一个小型CMS以获得乐趣,作为其中的一部分,我在应用程序启动时从数据库注册路由.用户可以自己添加路线.问题是此路由存储在数据库中,因此在应用程序重新启动之前不会注册.
是否可以在没有重启应用程序的情况下重新注册路由?
如果没有,我如何按需重启应用程序?
干杯,
伊恩
我有下一个功能.我的PHP脚本返回一个数组,error其值为'ERR':
var updatePaymentType = function(plan_pt_id, pt_id){
var error = null;
var data = new Object()
data["function"] = "update";
data["payment_type_id"] = pt_id;
data["plan_payment_type_id"] = plan_pt_id;
data["data"] = $("#saveform").serializeArray();
$.ajax({
type: "POST",
url: "<?=ROOT_PATH?>/commission/plan/edit/id/<?=$this->editId?>",
data: data,
dataType: "json",
success : function (data)
{
error = data['error'];
alert(error); // All works. Output ERR
}
});
alert(error); // Not work. Output null
return error;
};
Run Code Online (Sandbox Code Playgroud)
我的函数应该返回一个错误.但它回来了null.非常感谢你.
c# ×2
jquery ×2
.net ×1
ajax ×1
asp.net ×1
asp.net-mvc ×1
css ×1
css3 ×1
delegates ×1
ironpython ×1
java ×1
javascript ×1
jcombobox ×1
pagespeed ×1
performance ×1
php ×1
routing ×1
task ×1
web-services ×1