人气旺的博客,留言必定多,留言一多,页面打开就非常慢,不信,你打开我的留言本看看,当然了,我只有这个旺,其他还是冷冷清清,大家多来逛水啊,但是没有奖品 等哪天,我拉到了赞助商,我就会给经常逛水并且成为好朋友的同学颁奖,偶象级别的著名 blogger 大猫和胡戈戈看到这里肯定高兴了。 恩,又扯远了,其实今天偶是来给大家推荐枫叶兄的著名插件 WP Thread Comment ,该插件主要解决我上面说的问题,除此之外,还有如下功能: 可以回复某人的评论, 并将父评论和子评论显示在一起, 便于识别和阅读。 后台增加了管理界面, 可以自定义子评论的显示样式, 并可以编辑css样式。 能够自动检测 Comment Form ID ,不需要手动设置。除比较 BT 的主题外! 可以选择是否在禁用插件后自动清理配置项目, 可以让你的 WordPress 不留一丝垃圾, 做到真正绿色。 当然是为了造福全世界人民, 该版本也做成了多国语言版(好同志啊)。 还能如果管理员了留言,会发送提醒留言已经回复的邮件 这么好的插件你还不用,下载地址:点击下载! 标签:WordPress 插件 WordPress 留言插件
thread
如何实现 WordPress 主题的 Thread Comments 功能
WordPress 从 2.7 版本新增的最大一个功能就是 Thread Comments(嵌套留言和回复),就是可以回复留言并且嵌套显示,这样非常留言的时候更加友好,可以针对日志内容留言,也可以针对某条留言回复,并且可以直接在留言中讨论而不影响其他用户,所以 WordPress 主题实现 Thread Comments 是非常必要的。 由于 WordPress 很早就在 wp_comments 数据表中预留了 comment_parent 字段,在 2.7 版本之前的实现 Thread Comments 功能的插件都是通过使用这个字段实现的,WordPress 2.7 之后自带的 Thread Comments 也不例外,也是通过这个字段实现,所以可以完全兼容之前的 Thread comments 插件。但是要使用 WordPress 2.7 自带的 Thread Comments,需要修改主题的 comments.php 主题文件,我下面就讲解下如何修改,注意这里的代码不向下兼容了,修改了之后,你的主题只能在 WordPress 2.7 或者中使用了。 1. 首先在主题的 header.php 的 wp_head() 函数之前添加如下函数: if(is_singular()) wp_enqueue_script(‘comment-reply’); 上面这个函数是在主题模板中添加 comment-reply.js 这个 JS,它是 Thread comment […]
AsyncTask对比Thread加Handler Android开发技术
很多网友可能发现Android平台很多应用使用的都是AsyncTask,而并非Thread和Handler去更新UI,这里Android123给大家说下他们到底有什么区别,我们平时应该使用哪种解决方案。从Android 1.5开始系统将AsyncTask引入到android.os包中,过去在很早1.1和1.0 SDK时其实官方将其命名为UserTask,其内部是JDK 1.5开始新增的concurrent库,做过J2EE的网友可能明白并发库效率和强大性,比Java原始的Thread更灵活和强大,但对于轻量级的使用更为占用系统资源。Thread是Java早期为实现多线程而设计的,比较简单不支持concurrent中很多特性在同步和线程池类中需要自己去实现很多的东西,对于分布式应用来说更需要自己写调度代码,而为了Android UI的刷新Google引入了Handler和Looper机制,它们均基于消息实现,有事可能消息队列阻塞或其他原因无法准确的使用。 Android开发网推荐大家使用AsyncTask代替Thread+Handler的方式,不仅调用上更为简单,经过实测更可靠一些,Google在Browser中大量使用了异步任务作为处理耗时的I/O操作,比如下载文件、读写数据库等等,它们在本质上都离不开消息,但是AsyncTask相比Thread加Handler更为可靠,更易于维护,但AsyncTask缺点也是有的比如一旦线程开启即dobackground方法执行后无法给线程发送消息,仅能通过预先设置好的标记来控制逻辑,当然可以通过线程的挂起等待标志位的改变来通讯,对于某些应用Thread和Handler以及Looper可能更灵活。
ProcessDialog结合Thread处理耗时操作 Android开发技术
很多初入Android开发的网友表示经常遇到ANR这类的UI假死或提示强制关闭的问题,有的网友可能想到通过创建一个Android Service的方式来解决耗时操作的假死,但是Android123还是给大家一个简单实用的方法通过创建一个线程而不是服务的方式来解决耗时操作时的假死或等待。 在一个名为Android123的Activity中,我们通过一个进度条控件ProgressDialog可以处理很多耗时操作。代码如下 final ProgressDialog dialog = ProgressDialog.show(Android123.this, "标题", "正文", true); final Handler handler = new Handler() { public void handleMessage(Message msg) { dialog.dismiss(); //关闭progressdialog } }; Thread cwjThread = new Thread() { public void run() { //这里处理耗时操作,比如文件下载等等。 handler.sendEmptyMessage(0); //告诉handler } }; cwjThread.start();
Only the original thread that created a view hierarchy can touch its views的相关 Android开发技术
很多网友在Android中使用多线程处理UI相关内容时可能会发现Logcat提示Only the original thread that created a view hierarchy can touch its views这样的错误,这主要是Android的相关View和控件不是线程安全的,我们必须做独立的处理这点比J2ME麻烦一些,这里Android给我们提供了很多方法,有关线程的,我们需要了解下J2ME中一些传统的线程创建方法,比如Runnable或直接new Thread(),大家需要了解UI线程、worker线程以及一些概念。今天android开发网说一种简单的方法除了异步任务AsyncTask外使用Handler可以很好的处理,和Win32的消息很像。 首先我们需要明白,主线程或者这里说的原始线程original thread 一般情况下是UI线程,当然UI线程并不一定是主线程,我们不能长时间的阻塞该应用,在Android平台上可能会产生类似Force close或Wait这样的对话框这里我们成为ANR,这里除了使用ProgressDialog方式给用一个动态的进度代表当前处理并没有中断可能需要一些时间,所以android123告诉大家相关的网络处理可以使用工作者线程,但是worker 线程不能处理显示元素即UI相关的View或Widget包中的高层的控件,所以通过一个Handler对象可以很好的传递Runnable或Message ,下面我们用一个简单的例子来描述 final Handler cwjHandler = new Handler(); final Runnable mUpdateResults = new Runnable() { public void run() { updateUI(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NetworkOperation();//一个很费时间的I/O操作,比如网络或文件读写等等。 } […]


