关闭

[置顶] 一个犀利的 HTML 解析器 —— Less.Html

我写了这个解析器之后才知道,原来 C# 写的 html 解析器有很多。但是因为我没有参照别人的做法,Less.Html 有一个特点,就是它的用法是最接近 jQuery 的。我刻意模仿了 jQuery。比如我写的 示例一: var q = HtmlParser.Query(testHtml); foreach (Element i in q("td")) { if (!q(i).f...
阅读(415) 评论(0)

KindEditor 的 html 标签自动解码问题

我的博客是使用 KindEditor 编辑的。我经常会使用代码模式在标签里面写一些 html 标记,我是在输入的时候,已经使用编辑器进行了编码的,比如,我输入的是<p> 如果文章只编辑一次,是没有问题的。但是在第二次打开,想要修改一点东西的时候,发现我输入的编码后的 html 标签被自动解码了,这样显示的文章内容就和预期不符了。 开始我以为这是 KindEditor 的 b...
阅读(258) 评论(5)

Less.Html 示例四:与 WebBrowser 的配合使用,以抓取京东手机价格为例

很多网页使用了 ajax 技术,浏览器地址栏的链接并不返回全部的内容,而是在加载文档之后,采用异步的请求获取对应的内容。京东商城的商品价格就是 ajax 获取的。这样做有可能是为了优化速度,也有可能是为了防止抓取,或者两者都有。这种网页单纯用 WebClient 无法得到和浏览器访问相同的内容,需要使用 WebBrowser 控件,这个控件相当于在程序中嵌入了一个 IE 浏览器,可以运行网页的脚本...
阅读(125) 评论(0)

Less.Html 示例三:与 WebClient 的配合使用,以抓取 CSDN 论坛内容为例

WebClient 是做内容采集经常会用到的类,提供了方便的获取网页内容的方法。但是获取到的是字符串类型,如果使用 Less.Html 解析成节点树,可以大大的加快开发的速度: WebClient client = new WebClient(); client.Encoding = Encoding.UTF8; string aspDotNet = client.DownloadStrin...
阅读(138) 评论(0)

Less.Html 示例二:以 Less.Html 做视图引擎

这个示例来源于帖子 http://bbs.csdn.net/topics/392182238。楼主要生成一个树形结构的 html 视图: 这个 html 的要求比较简单,Less.Html 的解析优势并不是很明显,但总比拼接要好的。我在这个示例中使用了三个修改 html 节点的方法,分别是 html、after 和 append,还有修改节点属性的方法 attr: //...
阅读(119) 评论(0)

Less.Html 示例一:获取嵌套元素中的正确内容

这个示例来源于这个帖子 http://bbs.csdn.net/topics/392175840,需要获取内容的 html 如下:...
阅读(168) 评论(0)

一个简单的 C# 图片缩放模块 —— Less.Image

对于 web 项目来说,对图片进行不同尺寸的缩小是必须的。 如果你编写过支持 IE6 的 web 项目,你会记得 IE6 对图片的缩放效果是很差的,要禁止你的图片被浏览器缩放,就要在服务端先把图片缩放到适合的尺寸。现在 IE6 基本被淘汰了,但是为了页面的加载速度,你还是要在服务器端把图片缩小。特别是现在很多人用移动流量浏览网页,为了节省用户的流量费,也要在服务器端把图片缩小,最好服务器端响...
阅读(132) 评论(0)

一个网页 icon 的创意

浏览器允许你在每个页面都指定一个 icon,然后浏览器会把它显示到需要的地方。一般在收藏夹、tab 标签,都会显示 icon,增加网页的个性。比如百度的 icon 在 chrome 的 tab 标签的效果: 百度的 icon 是一个动物的脚印,可能代表凭足迹去寻找的意思吧。可以肯定的是,给网页指定 icon,可以增加识别度。人对图形的认知比起文字,认得更快,记得更久。 我的工作...
阅读(82) 评论(0)

C# 判断手机访问的方法

有一个网站,提供了各种语言判断手机访问的方法,http://detectmobilebrowsers.com/ 其中 C# 的代码如下: <% string u = Request.ServerVariables["HTTP_USER_AGENT"]; Regex b = new Regex(@"(android|bb\d+|meego).+mobile|avan...
阅读(118) 评论(0)

桌面网站与手机网站

不用看统计数据都知道,近几年手机网站的浏览量比起桌面网站肯定是大幅度上升的。所以编写网站的手机版本,是一个很重要的工作。 手机网站的做法,主要有两种。 一种是让你桌面网站兼容手机,或者说倒过来,让你的手机网站兼容桌面。这样你的网站在桌面和在手机是共用 css 文件的,只是在不同的屏幕会使用不同的样式。我的博客之前也是这样做的,加上这样的样式供手机屏幕使用: @media screen a...
阅读(123) 评论(0)

session 为什么不见了?谈 IIS 应用程序池的两个重要设置

经常听到程序员会说,明明设置了很长的超时时间,为什么没有生效呢?session 很快就被清空了。 asp.net 默认的 session state 模式是 in proc(进程内),数据是在网站的应用程序池里面保存的。这样在 web.config 设置的超时时间,是在应用程序池没有发生回收的基础上才是有效的。 这样就出现了问题,为什么应用程序池会发生回收?如何禁止应用程序池的回收,让...
阅读(278) 评论(0)

网页加载的思考

原文链接:http://bibaoke.com/post/64 浏览器加载一个页面,会先加载 html 文档,在渲染文档的同时加载图片。很多网站的 img 元素是没有 width、height 属性的,我的也没有设置。这样浏览器在渲染文档的时候,不会给图片留出空间,在开始加载图片,知道图片的实际宽高之后,再留出图片的空间。这样就造成在网页加载的过程中,网页的高度会逐渐变高,垂直滚动条会闪烁跳...
阅读(130) 评论(0)

asp.net 中的相对路径

在 web form 编程中,一个完整的 url 是一般是这样的: http://yourdomain.com/dir/file.aspx 程序员在编写指向 file.aspx 这个页面的代码的时候,往往不知道项目会部署到什么域名中,又或者测试的时候所使用域名与正式环境所使用域名不相同。在 IIS 中,还有在一个网站中创建应用的做法,更有多个域名指向同一个网站的情况…… 可能在网页部...
阅读(137) 评论(0)

京东在用 .NET 吗?

很多人在讨论 .net 的时候,都会拿出京东做例子。支持者说京东能用 .net,说明 .net 很好,只要用得好,可以做大型网站。反对者说京东早期是用 .net 的,但是网站做得很烂,完全不能支撑业务,转投 java 的怀抱之后才好转,所以 .net 不如 java。 其实 web 程序员都知道,一个网站用什么技术,可以在 http 请求和响应中看出来,只要这个网站不是故意去伪装的话。一般网...
阅读(697) 评论(0)

原生 APP 与 HTML5 哪个好?

我认为原生 APP 和 HTML5 的不同在于表达界面方式的不同,原生 APP 使用绘图表达,HTML5 使用 HTML(超文本标记语言)表达。 原生 APP 的宿主是操作系统,HTML 5 的宿主是浏览器,浏览器就是系统的一个原生 APP。这样就使得原生 APP 可以获得更多的系统权限,更灵活的编程方式,用绘图可以实现的效果无论如何都会比 HTML 要多。HTML5 有了浏览器这个隔离层次...
阅读(514) 评论(1)

浅谈 SQL 中的锁(六)查看锁的基本方法

像前面的例子那样,阻塞事务的语句是必须的: --延长处理时间 waitfor delay '0:00:10' 这个语句代表在查询中等待 10秒,这样我们才能模拟并发的情况,如果事务很快执行完毕了,就无法重现并发的情况。 我在网上看到有些例子是使用 C#、Java 等语言启动多个线程去模拟并发,而不是使用阻塞,虽然这样更接近生产环境,但并不利于简化问题。多个线程模拟并发,取决于线程数和...
阅读(135) 评论(0)

浅谈 SQL 中的锁(五)另一种解决方案

余额问题 http://blog.csdn.net/closurer/article/details/54291241 的处理,还有一种等价方法: update balance set value = value - 1 where id = 1 and value >= 1 用一个 update 语句表示如果用户余额足够,即扣减余额,数据库会对数据放置排它锁。这样既不会出现余额负数的...
阅读(121) 评论(0)

浅谈 SQL 中的锁(四)如何检查重复用户

上一节 http://blog.csdn.net/closurer/article/details/54342831 说了一个注册用户的事务没有互斥,导致注册用户失败的问题。 也说了解决方法就是使用 serializable 隔离级别去执行事务: --开始事务 begin transaction --设置串行式事务 set transaction isolation le...
阅读(184) 评论(0)

浅谈 SQL 中的锁(三)重复用户问题

拿 Web 项目中常见的注册用户场景做例子: --测试用户表 create table app_user ( mobile varchar(11) primary key ) --添加测试数据 delete app_user insert app_user values('13800001111') 现在新注册一个手机号为 13800002222 的用户: --开始...
阅读(216) 评论(0)

浅谈 SQL 中的锁(二)余额问题的处理

上次模拟了 SQL 中并发执行更新余额的语句,出现余额负数的问题: http://blog.csdn.net/closurer/article/details/54288628 现在说说它的解决方法。 事务要正确地执行,就需要【隔离性】这个基本要素。更新余额的语句之所以会偏离期望的结果,是由于查询并没有互斥,也就是没有相互隔离: --检查用户的余额是否足够 if(exist...
阅读(667) 评论(0)
21条 共2页1 2 下一页 尾页
    个人资料
    • 访问:5206次
    • 积分:217
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:6篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论