虽然异步IO(带有select/poll/epoll/kqueue等的非阻塞描述符)并不是Web上记录最多的东西,但有一些很好的例子.
但是,所有这些示例在确定了调用返回的句柄后,只有一个do_some_io(fd)"存根".它们并没有真正解释如何在这种方法中最好地接近实际的异步IO.
阻止IO非常整洁,直接读取代码.另一方面,非阻塞,异步IO是毛茸茸的,凌乱的.
有什么办法?什么是健壮和可读的?
void do_some_io(int fd) {
switch(state) {
case STEP1:
... async calls
if(io_would_block)
return;
state = STEP2;
case STEP2:
... more async calls
if(io_would_block)
return;
state = STEP3;
case STEP3:
...
}
}
Run Code Online (Sandbox Code Playgroud)
或者(ab)使用GCC的计算得到的:
#define concatentate(x,y) x##y
#define async_read_xx(var,bytes,line) \
concatentate(jmp,line): \
if(!do_async_read(bytes,&var)) { \
schedule(EPOLLIN); \
jmp_read = &&concatentate(jmp,line); \
return; \
}
// macros for making async code read like sync code
#define async_read(var,bytes) \
async_read_xx(var,bytes,__LINE__)
#define async_resume() \
if(jmp_read) { \
void* …Run Code Online (Sandbox Code Playgroud) 调试HTTP很简单,你可以使用各种工具(比如Fiddler).那么SMTP呢?
如何调试SMTP通信?
我的目标系统是Windows.
建议的工具:
我正在尝试纠正CSS 2.1中常见的IE漏洞,需要一种方法来改变元素样式属性以添加自定义文本对齐样式.
目前在jQuery中你可以做类似的事情
$(this).width() or $(this).height()
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到一种改变文本的好方法 - 使用相同的方法.
该项已经有一个类,我在该类中设置text-align没有运气.在定义类之后,是否可以只向该元素添加text-align CSS属性?
我有类似的东西
$(this).css("text-align", "center");
Run Code Online (Sandbox Code Playgroud)
在我的宽度调整之后,在我在firebug中查看之后,我看到只有"width"是样式上设置的唯一属性.有帮助吗?
编辑:
哇 - 对这个问题的回应很大!关于手头问题的更多细节:
我正在调整jqGrid A3.5 的js源来做一些自定义子网格工作,而我正在调整的实际JS如下所示(抱歉在上面的例子中使用"this",但是我想保持这个简单简洁)
var subGridJson = function(sjxml, sbid) {
var tbl, trdiv, tddiv, result = "", i, cur, sgmap,
dummy = document.createElement("table");
tbl = document.createElement("tbody");
$(dummy).attr({ cellSpacing: "0", cellPadding: "0", border: "0" });
trdiv = document.createElement("tr");
for (i = 0; i < ts.p.subGridModel[0].name.length; i++) {
tddiv = document.createElement("th");
tddiv.className = "ui-state-default ui-th-column";
$(tddiv).html(ts.p.subGridModel[0].name[i]);
$(tddiv).width(ts.p.subGridModel[0].width[i]);
trdiv.appendChild(tddiv);
}
tbl.appendChild(trdiv);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了下面的两个(从提供的答案)没有运气.
$(tddiv).width(ts.p.subGridModel[0].width[i]).attr('style', …Run Code Online (Sandbox Code Playgroud) 到目前为止,我已经看到这些工具来压缩javascript文件
在Packer页面上有一个"Packer vs. JSMin"部分,它说JSMin比Packer更有效.在Yahoo Compressor页面上,它指出雅虎压缩器比JSMin效率更高,因此看起来雅虎压缩器可能是最佳候选者.
压缩javascript文件的最佳选择是什么?
我想更改UIAlertView的背景颜色,但这似乎没有颜色属性.
好的,所以我有一个声明事件的基类StatusTextChanged.我的孩子班,当然不能直接举起这个活动.
所以我结束了这样的事情(为简单起见):
Public MustInherit Class FooBase
Public Event StatusTextChanged(ByVal StatusText As String)
Protected Sub RaiseStatusTextChangedEvent(ByVal StatusText As String)
RaiseEvent StatusTextChanged(StatusText)
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
然后在我打电话的儿童班
MyBase.RaiseStatusTextChangedEvent("something").是否有更好或更推荐的方法来做到这一点?
编辑:VB.NET或C#,它的工作方式基本相同.
编辑:所以在响应之后,我在基类中,然后只在子类中设置StatusText属性...
Public Event StatusTextChanged(ByVal StatusText As String)
Private _StatusText As String = "Idle."
Public Property StatusText() As String
Get
Return _StatusText
End Get
Protected Set(ByVal value As String)
RaiseEvent StatusTextChanged(value)
End Set
End Property
Run Code Online (Sandbox Code Playgroud) 我正在使用Firefox 3.5b4.
这会警告[object Object],[object Object]:
var jsonString = '[{"foo": "one", "bar": 1}, {"foo": "two", "bar": 2}]';
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Run Code Online (Sandbox Code Playgroud)
这会警告空字符串,即jsonObjects为null.
var jsonString = "[{'foo': '1', 'bar': 2}, {'foo': '3', 'bar': 4}]";
var jsonObjects = JSON.parse(jsonString);
alert(jsonObjects);
Run Code Online (Sandbox Code Playgroud)
同样,对于不带引号的属性名称,即{foo:'1',bar:2}.
这是怎么回事?我错过了一些明显的东西,还是有关于JSON.parse的双引号和单引号的规则?所有三个版本都可以使用eval工作.
我正在开发一个新项目,我想使用Phil Haack Areas(1)idea + Steve Sanderson的调整(2).我有一个简单的根视图,其中包含一个视图区域(Foo)的动作链接.生成的URL具有适当的区域,但它在末尾附加根控制器(Bar).这是我的根视图代码:
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Index</h2>
<%= Html.ActionLink("Foo Index Page", "Index", new { area="Foo" } )%>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
这是它生成的URL:
本地主机:6494 /美孚/酒吧
知道为什么"/ Bar"在那里?
(1):haacked.com/archive/2008/11/04/areas-in-aspnetmvc.aspx
(2):blog.codeville.net/2008/11/05/app-areas-in-aspnet-mvc-take-2/
我有一个 ASP.NET 应用程序,它是一个更大系统的一部分;它从 Web 应用程序根级别以上的文件中读取大部分配置。
由于已经编写了应用程序并且选择了配置文件的格式以方便客户进行编辑,因此我无法使用“.NET 中的共享配置文件”中的解决方案。
我希望 ASP.NET 有一个 API,我可以在启动时调用它来告诉它要观看哪个文件。(我可以使用“FileSystemWatcher”以艰难的方式编写此代码并捕获事件然后自己重新启动,但是这很遗憾,因为 ASP.NET 已经有代码来监视文件并在更改时重新启动。)
另外我调用什么 ASP.NET API 来让 ASP.NET 以一种很好的方式重新启动?
这些是我发现的一些可能有帮助的链接: Using the FileSystemWatcher from ASP.NET and Extending FileSystemWatcher to ASP.NET
在一种情况下,我将配置缓存在 ASP.NET 缓存中,并为该文件设置了 CacheDependency。在需要更快访问的另一种情况下,我使用了 FileSystemWatcher 并在配置更改时更新了静态字段。
(我从来没有发现如何以合理的方式从代码中重新启动 ASP.NET。)
有人请帮忙.我有一个有趣的问题.我正在尝试实现一个MVVM应用程序,我想在我的视图中绑定到radiobuttons.
这是我的观点:
<StackPanel Orientation="Horizontal" Grid.ColumnSpan="2" >
<RadioButton GroupName="1" IsChecked="{Binding Path=NoteGeneral, Mode=TwoWay}">General</RadioButton>
<RadioButton GroupName="1" IsChecked="{Binding Path=NoteContact, Mode=TwoWay}" >Contact</RadioButton>
<RadioButton GroupName="1" IsChecked="{Binding Path=NoteAddress, Mode=TwoWay}" >Address</RadioButton>
<RadioButton GroupName="1" IsChecked="{Binding Path=NotePhone, Mode=TwoWay}" >Phone</RadioButton>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
这是我的ViewModel:
bool _NoteGeneral;
public bool NoteGeneral
{
get { return _NoteGeneral; }
set
{
_NoteGeneral = value;
OnPropertyChanged("NoteGeneral");
}
}
bool _NoteContact;
public bool NoteContact
{
get { return _NoteContact; }
set
{
_NoteContact = value;
OnPropertyChanged("NoteContact");
}
}
bool _NoteAddress;
public bool NoteAddress
{
get { return _NoteAddress; } …Run Code Online (Sandbox Code Playgroud) .net ×2
javascript ×2
asp.net ×1
asp.net-mvc ×1
asynchronous ×1
c ×1
c++ ×1
cocoa-touch ×1
compression ×1
css ×1
data-binding ×1
debugging ×1
events ×1
firefox ×1
io ×1
iphone ×1
jquery ×1
jscompress ×1
json ×1
minify ×1
monitoring ×1
mvvm ×1
objective-c ×1
smtp ×1
text-align ×1
uialertview ×1
uikit ×1
vb.net ×1