这个让我发疯.这是XAML:
<UserControl x:Class="SilverlightApplication1.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top">
<ComboBox ItemsSource="{Binding Path=Thing.Stuff}"
SelectedItem="{Binding Path=Thing.SelectedStuff}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<Button Content="Again" Click="Button_Click" />
</StackPanel>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
而代码隐藏:
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace SilverlightApplication1
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
Data data = new Data();
data.Thing = new Thing();
data.Thing.Stuff = new ObservableCollection<Stuff>();
data.Thing.Stuff.Add( new Stuff { Name = "Stuff 1" } ); …Run Code Online (Sandbox Code Playgroud) 我有一个MVC应用程序视图,生成相当大的HTML值表(> 20MB).
我正在使用压缩过滤器压缩控制器中的视图
internal class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding))
return;
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在运行压缩过滤器之前消除视图中生成的(非常大)冗余空白量(以减少压缩工作量和大小)?
编辑: 我使用下面的Womp建议的WhiteSpaceFilter技术.
感兴趣的是Firebug分析的结果:
1)没有压缩,没有空白条 - 21MB,2.59分钟
2)使用GZIP压缩,没有空白条 - 2MB,17.59s
3)使用GZIP压缩,空白条--558kB,12.77s
所以当然值得.
是否有标准调用将POSIX套接字的发送端一直刷新到远程端,还是需要将其作为用户级协议的一部分实现?我环顾了常见的标题,却找不到任何东西.
有没有办法从另一个进程启动脚本,以便如果进程死亡/结束,脚本仍然继续?
setuid会这样做吗?如果我要将所有者设置为root,然后启动脚本?
例如,如果我有一些PHP代码启动脚本,但httpd死亡或被杀死,我认为它需要我的脚本.有没有解决的办法?
具体来说,我使用的是Apache 2和PHP 5的Fedora 10.
我在PHP中有这个数组:
array(
[0] => array( 'username' => 'user1' )
[1] => array( 'username' => 'user2' )
)
Run Code Online (Sandbox Code Playgroud)
如果我有"用户名"字符串,我怎样才能将索引值作为数字?
例如,如果我有'user1',我怎么能得到0?
我在想,如果RIM发布了一个API,允许在非RIM设备的第三方应用程序,如iPhone,发送和接收邮件的黑莓???
我昨天刚刚通过Github跳进了Git,我正在离开svn.我创建了一个私人仓库,我打算用它来保持我的个人项目在工作和家庭之间同步.在创建远程仓库的过程中,我的工作中的本地文件被推高了.昨晚,我能够把它们拉到家里的笔记本电脑上.
现在我在工作中向repo目录添加了一些新文件.我做了"git add filename",其中"filename"是我的文件.然后我做了"git commit -m'我的消息'",这似乎有效.我不能把它们推到遥控器上.我试过'git push personal',但收到了一个错误:
To git@github.com:geuis/personal.git
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:geuis/personal.git'
Run Code Online (Sandbox Code Playgroud)
对于这些东西,Svn真的很直白.我一直在尝试阅读有关Git如何工作的文档,但大部分内容似乎都假设您已经了解了基础知识.
对于我的情况,我需要了解哪些基础知识?Github上的远程仓库,以及工作和家庭中的2个独立检查,将手动同步到远程.
我在Mac上.
比方说,我有一个抽象类饮料,以及选择的饮料(葡萄酒,啤酒等)的类型在运行时创建的工厂方法.
每个饮料都需要一些参数来正确初始化自己.其中一些是所有饮料的共同点; 例如,他们可能都需要DrinkConfig参数.
但每种饮料也可能有其独特的要求.也许Wine需要一个Sommelier辅助对象来初始化自己.啤酒不需要它,但它可能需要它自己的辅助对象.
那么我应该将什么传递给工厂方法呢?当我调用它时,我有所有可用的辅助对象,所以我可以将它们全部传递给工厂.但这最终可能会引发很多争论.有没有更好的方法来设计它?
编辑:我们假设我不能在工厂中创建辅助对象; 他们只能从来电者处获得.
假设我想在数据结构中添加单词,并且我希望有恒定时间查找以查看该单词是否在此数据结构中.我想做的就是看看这个词是否存在.我会使用HashMap(containsKey())吗? HashMap使用key->值配对,但在我的情况下,我没有值.当然我可以使用null作为值,但即使null也需要空格.看起来这个应用程序应该有更好的数据结构.
该集合可能会被多个线程使用,但由于集合中包含的对象不会更改,因此我认为我没有同步/并发要求.
谁能帮我吗?
factory ×2
java ×2
php ×2
api ×1
asp.net-mvc ×1
bb-messenger ×1
blackberry ×1
c ×1
combobox ×1
compression ×1
constructor ×1
containskey ×1
daemon ×1
data-binding ×1
git ×1
github ×1
hashmap ×1
html ×1
iphone ×1
linux ×1
lookup ×1
oop ×1
posix ×1
process ×1
scripting ×1
selecteditem ×1
silverlight ×1
sockets ×1
subclass ×1
whitespace ×1