我DispatcherTimer在我的代码中运行,每30秒触发一次,从服务器更新系统状态.即使我正在调试我的服务器代码,计时器也会在客户端中触发,因此如果我已经调试了5分钟,我可能会在客户端中进行十几次超时.最后决定我需要修复这个问题从而寻求使一个更加async/ await友好DispatcherTimer.
DispatcherTimer必须是可配置的,无论它是否是可重入的(即如果任务已经运行,则不应该再次运行它)await完成任务IsRunning为UI提供可绑定属性如果您查看以下示例oData Feed,您将看到包含"子"项的导航属性,以告诉您要遵循的URL:
http://services.odata.org/OData/OData.svc/Suppliers?$format=json
例如,供应商0具有产品的导航属性.这链接到该供应商的产品列表.
http://services.odata.org/OData/OData.svc/Suppliers(0)/Products?$format=json
我正在努力做同样的事情ODataConventionModelBuilder,EntitySetController<Product>所以当我要求oData/Product(0)它时会告诉我产品的'功能':
我像这样创建我的模型(基于GetImplicitEdmModel示例)
// odata
ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<RRStoreDB.Models.Product>("Product");
modelBuilder.EntitySet<RRStoreDB.Models.ProductFeature>("ProductFeature");
Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);
Run Code Online (Sandbox Code Playgroud)
我为WebAPI创建了一个控制器:
public class ProductController : EntitySetController<Product, int>
{
RRStoreDBContext _db = new RRStoreDBContext();
[Queryable]
public override IQueryable<DProduct> Get()
{
return _db.Products.AsQueryable();
}
public ICollection<ProductFeature> GetProductFeatures(int key)
{
Product product = _db.Products.FirstOrDefault(p => p.ProductId == key);
if (product == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return product.ProductFeatures;
}
}
Run Code Online (Sandbox Code Playgroud)
当我实际调用我的子属性的URL时,它工作并给我正确的功能列表: …
有时需要一秒或更长时间才能从浏览器连接到我的SignalR服务器 - 即使在本地运行时也是如此.我认为websockets是快速的!
我是JQuery的新手.我正在阅读JQuery,但最多只能访问第39页并需要一些快速帮助!
请注意:我正在简化我的实际要求,所以我要求的可能听起来很奇怪,但我只是试着去了解JQuery表达式的关键而不是我的情况(与动画插件有关).
我有我的HTML代码(生成,我不想改变):
<div class="favorite">
<div>
<a href='http://www.stackoverflow.com'>Stackoverflow</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
现在我要做的是在当前内容之后插入文本'(收藏)'INSIDE A标签.或者换句话说,作为最后一个孩子<a>.
<div class="favorite">
<div>
<a href='http://www.stackoverflow.com'>Stackoverflow (favorite)</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我到目前为止最好的是:
$('<span> (favorite)</span>').insertAfter('.favorite div a');
Run Code Online (Sandbox Code Playgroud)
当然,这最终会将(最喜欢的)文本放在A链接之外,并且不会加下划线(我想要).
我需要以某种方式说.parent().lastChild()但我不太确定该怎么做.
注意:我必须放入<span>,因为否则它不会将其视为"可插入"文本.我确信还有一种解决方法,但这是次要问题.
我喜欢在我的浏览器中启用javascript调试,所以当我开发自己的代码时,我可以立即看到我出错的时候.
当然这意味着我在apple.com,microsoft.com,stackoverflow.com,cnn.com,facebook.com上看到了错误.有时看到有多少糟糕的代码存在于主要网站,但有时它真的很恼火,这很有趣.
我想知道如何改变这一点但从未真正解决过这个问题.今天特别烦人,我真的很想知道任何解决方案.
我唯一的解决方案是:使用不同的浏览器进行日常浏览.
我是一个快速简单的插件,有人可以指引我到我可以根据我所在的域打开和关闭的地方.
编辑:我通常使用IE7进行日常浏览
我真的很讨厌IDictionary<TKey, TValue> [key]如果字典中不存在密钥会如何抛出异常.
当然有TryGetValue(),但似乎已经针对性能而非可用性进行了优化.
所以我想,哦,我只是为它做一个扩展方法 - 我做了:
public static class CollectionExtensions
{
public static TType GetValueOrDefault<TKeyType, TValue, TType>(this IDictionary<TKeyType, TType> dictionary, TKeyType key)
{
TType value = default(TType);
// attempt to get the value of the key from the dictionary
// if the key doesn't exist just return null
if (dictionary.TryGetValue(key, out value))
{
return value;
}
else
{
return default(TType);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常除了我似乎无法得到类型推断工作.
显然我希望能够做到以下几点:
var extraDataLookup = new Dictionary<string, string>();
extraDataLookup["zipcode"] = model.Zipcode;
Run Code Online (Sandbox Code Playgroud)
然后能够访问该值: …
我有一个简单的HTML表格,其中包含2个包含"名称","评论"和"电子邮件"的文本字段和标题的列.
我正在寻找关于样式化这个HTML片段的最佳策略,如果它出现在多个页面上 - 每页需要不同的尺寸.我最近一直在阅读很多关于CSS的内容但是没有偶然发现足够的信息,这让我很自然地知道设计这种.css的最佳方法.
例如,我可能会在"评论"页面上以50%的宽度显示评论表单,但在网站的某些其他位置的边栏中仅显示20%.
我主要关注的是盒子宽度的样式 - 当然,同样的方法适用于文本.例如,名称字段不应该与电子邮件字段一样宽.我认为固定宽度比百分比更好.
它有很多种方式可供选择.假设我已经拥有1个主css文件.
1)在input标签上放置百分比宽度,然后外部div对于它所包含的任何面板都是100%宽度.这不需要特定于页面的css但是我不喜欢td标签内部百分比的想法,而且我不能改变容易的高度textarea.
2)在每个页面中为#Name,#COMMments和#Email创建样式作为<head><style>*中的其他样式
3)基于页面特定css文件中的#Name,#Comments和#Email的样式.页面特定文件是好还是坏?我甚至不确定我喜欢基于这里的ID的样式,因为它们是动态生成的,如果由于某种原因需要更改,我必须更新css到处都是.
4)基于#Name,#Comments和#Email的样式,但使用特定于每个页面的后代选择器限定它们.所以我想.faqPage #Name在FAQ页面上显示这个内容.显然这些都在我的主css文件中.
5)为'emailField ,nameField andcommentsField` 创建类名[为此选项重复选项2,3,4]
6)为'shortField ,fullWidthField andtextInputField` 创建类名[为此选项重复选项2,3,4]
7)你明白了:)
8)别的东西
我对所有选项都感到有些不知所措.我如何决定哪种方式最好?一个特定的目标是能够在多个页面上设置相同的HTML样式(显然这就是css的全部内容 - 但它确实会影响我可以使用哪些选项).
<div id="pnlSubmitComments">
<table class="fieldTable">
<tr>
<td align="right">
<label for="Comments">Name:</label>
</td>
<td>
<input id="Name" name="Name" type="text" value="" />
</td>
</tr>
<tr>
<td align="right">
<label for="Comments">Email:</label>
</td>
<td>
<input id="Email" name="Email" type="text" value="" />
</td>
</tr>
<tr>
<td align="right" valign="top">
<label …Run Code Online (Sandbox Code Playgroud) 所以我目前使用BundleTransformer,LESS我正在尝试添加Autoprefixer后处理器.这个插件会自动获取css transform: scale(1.5)并将其转换为-webkit-transform和-moz-transform.
如果我处于发布模式或者BundleTable.EnableOptimizations=true然后一切正常并且前缀按预期添加.
但是,在调试模式下,我的包中的所有单独的CSS/LESS文件都作为单独的请求存在于HTML中.我在我的CSHTML文件中使用此命令:
@Styles.Render("~/Content/css/lessbundle")
Run Code Online (Sandbox Code Playgroud)
即在调试模式下,这会扩展到以下LINK标签:
/cs/something.css
/css/lessfile1.less
/css/lessfile1.less
Run Code Online (Sandbox Code Playgroud)
而不是一个文件
/Content/css/lessbundle?v=RFAUSIwb-jEuuo4vHNTnTkE2LrN2jfHglX-Hk8HIF481
Run Code Online (Sandbox Code Playgroud)
对于LESS文件,IIS会自动转换它们,但它不适用Autoprefixer.
在请求原始文件.css和.less文件时,有没有办法让Autoprefixer工作?
如果不是这对我来说似乎毫无意义,因为我看到的唯一选择是直接请求'Content/css/lessbundle虚拟URL - 它将通过Autoprefixer.它只会在发布版本中缩小.
如何避免编写疯狂的combineLatest语句来计算简单的布尔逻辑表达式?
例如。这个简单的表达式几乎不适合 stackoverflow 代码控件,如果你不小心重新排序参数,你将很难调试!
this.showPlayButton = combineLatest(this.playPending, this.isReady, this.showOverlay)
.pipe(
map(([playPending, isReady, showOverlay]) => isReady && !playPending && showOverlay),
distinctUntilChanged();
Run Code Online (Sandbox Code Playgroud)