.NET下实现Server Push

无意在网上看到了一份.NET下实现Server Push(服务器推)的源码,断断续续看了两天,难点较多,遂成此文。
关于服务器推技术,我们最深刻的体验应该是WebQQ的使用,通过服务器向客户端进行信息推送,而不是客户端去主动取数据(Client Pull)。

IIS 开启 GZIP 压缩效率对比及部署方法

HTTP 压缩是在 Web 服务器和浏览器间传输压缩文本内容的方法。HTTP 压缩采用通用的压缩算法如 GZIP 等压缩 HTML、JavaScript 或 CSS 文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。GZIP 是比常见的一种 HTTP 压缩算法。

EXEC与sp_executesql的区别及应用

在项目中需要将内部 DECLARE 的参数通过 EXEC 赋值后再作为下面一个 EXEC 参数的时候,发现都使用 EXEC时,问题就不是那么简单了。
<!–mhttps://oindk07nf.qnssl.com

EXEC的使用缺陷

EXEC 命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理 。
一般的使用如下,做动态SQL语句拼接,然后执行。

然而上面这样的拼接语句又称为“串联变量”,而串联变量是不支持执行计划的,在我的演示代码中我已加了测试的SQL语句。
使用DBChttps://oindk07nf.qnssl.com[http://msdn.microsoft.com/zh-cn/library/ms174283.aspx](http://msdn.microsoft.com/zh-cn/library/ms174283.aspx))

在输出的数据中我们很清楚的看到系统执行了两次,没有很好地使用执行计划
https://oindk07nf.qnssl.com

而最重要的是当我有下面这样的需求
https://oindk07nf.qnssl.com

出错啦!
https://oindk07nf.qnssl.com

然而我们发现这样的需求变相也是可以满足的,就是有点麻烦了,解决方案如下,使用临时表

sp_executesql的使用

使用sp_executesql的话,一切将变的很简单
sp_executesql命令比EXEC命令更灵活,因为它提供一个接口,该接口及支持输入参数也支持输出参数。这功能使你可以创建带参数的查询字符串,这样就可以比EXEC更好的重用执行计划,sp_executesql的构成与存储过程非常相似,不同之处在于你是动态构建代码。它的构成包括:代码快,参数声明部分,参数赋值部分。
sp_executesql的语法
EXEC sp_executesql
@stmt = ,–类似存储过程主体
@params = , –类似存储过程参数部分

–类似存储过程调用
@stmthttps://oindk07nf.qnssl.com一样,只不过它是动态的,而存储过程是静态的,不过你也可以在存储过程中使用sp_executesql;
@params参数与定义输入/输出参数的存储过程头类似,实际上和存储过程头的语法完全一样;
@ 与调用存储过程的EXEC部分类似。
现在我们按照sp_executesql的语法改造下上面的查询
https://oindk07nf.qnssl.com

查看执行计划的调用,很好的利用了已有的执行计划提升查询效率

我们再https://oindk07nf.qnssl.com
代码如下,可以将@TitleOutPut取出后再作为查询的参数给@TitleInPut赋值。

难题得解!

EOF

转载须以超链接形式标明文章原始出处和作者信息

详解 ASP.NET 最新安全漏洞 Padding Oracle 攻击原理及其他

微软在9月17日中午正式对外公布了ASP.NET平台下的安全漏洞,即 Microsoft Security Advisory (2416728)
SecurityFocus上已将此漏洞定义成了”Design Error”,那么微软一开始的设计就是错误的,为什么这么说呢?且待我们慢慢来分析。
昨天在园友 的一篇博文: 对ASP.NET的最新安全漏洞进一步跟进说明 中也看到了对此问题的详细追踪,但上午也只是粗粗浏览,下午细看时总觉文中有些地方略显含糊,所以晚上也就顺带查了些资料,略有所得,不敢独享,遂成此文!

js 模拟 form 提交的一些问题

当在页面中需要进行 post 提交时,一般的做法是将控件放入 form 标签中,加入一个 submit 按钮进行 post 方式的提交。
页面中有两个 Tab 进行切换,一个 tab 中需要获取用户输入的值进行 post 提交到 search 页面进行搜索操作,另一个 tab 中是获取用户输入的值进行 get 方法提交到另一个页面进行查询操作,那么那个按钮就能使用 submit 类型的按钮了(后来发现那样也可以实现相应的功能),那么想到的方法就是模拟一个 form 进行 post 提交。

Top