在单机版程序的设计中,对于需要较长时间运行的操作,一般都通过后台线程来完成。如果直接用 UI 线程(在 click 事件中) 运行,则 UI 界面长时间得不到机会重新绘制,会造成程序假死的现象(俗称“翻白眼”)。
后台线程更新界面有一些注意事项:
1. 后台线程一般不能直接操作界面控件,需要调用 invoke 之类的函数;
2. 后台线程更新界面的频次不能太慢,太慢则也容易让用户觉得程序“死掉了”;
3. 后台线程更新界面不能太快,一来界面更新太快人眼看不清,容易让人觉得程序好像失控了,在胡乱显示一些乱码;二来,界面更新太快,也会影响整个操作的完成速度,更新界面也是需要 CPU 的。我们知道,电影每秒是 24帧,也就是说,每秒更新画面 24 次,是可以让人觉得很流畅的,每秒更新超过 24 次是不必要的。 Read More
近日在博客网站上,回复别人的数据库死锁避免问题,之前也曾经几次答复过同样的内容,觉得很有必要汇聚成一个博客文章,方便大家。
这里的办法,对所有的数据库都适用。
首先说明:数据库的死锁问题,通过巧妙的设计,死锁是可以避免的。 Read More
Hibernate 官方网站瘫痪了,出现一个 Java Exception 出错 stack,并显示了 Web 服务器版本号:JBossWeb/2.0.0.GA_CP 。
按理说,系统瘫痪应该显示一个用户比较容易看得懂页面,显得很不专业。 Read More
早期的 EJB 有个“EJB 装配者”的角色,这种实际的工作模式,也许只有 Sun 公司才会有,其它大部分公司都不会有此类角色----大部分公司,都是小型公司,人员分工没有这么细,很多IT系统,连接池参数的调整,是由开发人员完成。
JNDI 也陷入了类似的角色分工问题:很多公司的角色分工与 Sun 公司不一样,Sun 把一个角色分工问题,引入到技术层面,可以想象,问题是很大的。 Read More
近日偶尔看到一个很巧妙的 SQL 技巧,一个简单的 SQL 同时验证帐号是否存在、密码是否正确。之前从未曾想过这么做,也未曾见过别人这么做。虽是奇技淫巧,却真正所谓构思巧妙。如果用来面试考考别人,真的能够难倒一大片兄弟。好东西不敢独享,特公开与大家同乐。 Read More
“CSDN 泄露用户密码” 事情。我们能得到什么启示呢? Read More
解决 jQuery 版本升级过程中出现 toLowerCase 错误 --更改 doctype
我的出错页面头为:
而 jsfiddle 网站上生成的每个测试页面,页面开头都是:
这才是问题根源。 Read More
快速点评 Spring Struts Hibernate, 优点及缺点。 Read More
动态生成 Excel 文件供浏览器下载的注意事项。
处理不当,可能会导致浏览器直接在页面中打开,形成乱码;也可能会取不到文件名。 Read More
Windows Server 2008 与普通 windows 版本最大的不同,在于其文件/目录控制权限更严。而 PostgreSQL 数据库也是一个按 “Unix/Linux 服务”程序设计的,也有自己的权限规则,因此,PostgreSQL 在 Windows Server 2008 上安装有些讲究。 Read More