pjblog升级的烦恼
作者:hayden 日期:2009-06-06
传说中的pjblog又升级了,这次升级确实有些麻烦,由于很多方面的功能需要修改,而修改的话,需要修改很多内核文件,从此可以看出PJBLGO还有一个很大的进步空间呀。
最烦恼的莫过于文件路径了,在开发出生成静态功能的时候,却没有考虑到栏目文件夹的功能。现在有这么多文章了,又开发出栏目文件夹功能。。唉....烦恼
不过其它的感觉还好,再就是这pjblog3.1XXX有些太恐怖了,APP服务器全局缓存太大了,一个文章一个缓存变量~~还有CACHE目录下的静态列表缓存,其实并没有减少与数据库的交互次数,也感觉不到这样的优异之处。
'*************************************
'自定义读取缓存路径 by evio
'*************************************
function caload(id)
...
application.Lock
application(CookieName&"_articleUrl_"&id) = caload
application.UnLock
set rex = nothing
end function
关于js文件,我老想不通,最新版的pjblog为什么有AJAX库文件了,在AJAX.asp中,还有重新去“CreatexmlHTTP”~
在前台添加文章时,当鼠标离开“别名”文本框时,会出现错误,原因估计是手误吧,其ajax事件中的get url的参数错误了。
然后我们来看看pjblog 现在自带的“相关文章”功能吧:Getarticle.asp 部分代码:
假设该文章有tag 3个,设一变量X来计算--> X=3
再设一变量Y 为与数据库交互次数。
......
Set Rs=conn.Execute("Select * from blog_Content where log_ID="&id&"") 'Y=1
......
if not rs.eof then
......
related_tag=split(related_tag,"}") '这里转换成的数组元素数量,会比实际tag数量多一个,假设其中related_tag={a}{a}{a}空,明白split的朋友应该一看就懂的。
......
DO until i>Ubound(related_tag) '因此这里在会循环X+1次,在我们所假充的标签TAG个数的前提下,也就是4次。
Set RsT=conn.Execute("Select log_Title,log_id,log_ViewNums from blog_Content where log_tag like '%"&related_tag(i)&"}%' and log_ID<>"&id&" order by log_PostTime desc")
if not RsT.eof then
Do until Rst.eof
......
Rst.movenext
Loop
End if
Set RsT=nothing
......
Loop
'上面循环过后,与数据库交互次数公式:Y=Y+X+1 按最初所假设的X值来算,此处最终Y=5。 ......
DO until i>Ubound(related_tag)
Set RsT=conn.Execute("Select log_Title,log_id,log_ViewNums from blog_Content where log_tag like '%"&related_tag(i)&"}%' and log_ID<>"&id&" order by log_PostTime desc")
if not RsT.eof then
Do until Rst.eof or i4=i2_2
......
if blog_postFile = 2 then
urlLink = Alias(RsT(1)) '如果是静态生成模式,此处还得与数据库有一次交互。
else
urlLink = "article.asp?id="&RsT(1)
end if
......
Rst.movenext
Loop
......
Set RsT=nothing
......
Loop
'上面循环过后,其与数据库交互次数就不固定了,如果循环第一次,检索第一个TAG的相关文章时,其结果满足第一页的显示条数,而跳出了循环,就是 10+1次,
'如果3个标签都循环到了,那就是 3+10次,其中还要排除如果有两个TAG都共同拥有一篇相关文章的情况,如果出现一次,则在此数字上加1
......
end if
下面看我增加数据库交互次数统计的变量后,其计算出来的结果吧(共3个TAG):SQL:查询数据库29次

唉,还有一点,这上传了一个图片才发现,原来默认了上传用动态地址输出的,无故还增加2次数据库交互(一次是根据ID检索出图片地址,一次是统计图片或附件的下载次数),当然这功能是好,只是呢,如果一篇文章里面带十个图,无故就增加了20次数据库交互次数了。再说博客不像大型的门户站,为节约不必要的带宽资源及连接数,个人站点而已也没有太多盗链的。而下载统计更没必要了,个人站访问量也没多少,统计了也没意思的。为什么后台不增加一个开关功能呢(目前后台只有盗链开关而没有关闭动态地址输出的功能)。
唉。。。我全给XX掉。辛苦啊,还好昨天有个网友bestchao陪我聊着,弄了近4个小时。。周末的“黄金”时间,呵呵。
问我改了啥?
一、老文章路径不变,新文章新路径。
二、地址中去掉了烦恼的“default.asp”,这很烦恼的,要改N个文件
三、XX掉了相关文章。
四、修正了下添加文章时判断文件名重复的错误,并修正了在编辑文章时,鼠标点入了别名的文本框中再离开时出现的验证错误标识,原因是检查重名时没有将本身文章的别名排除,以及增加了一个自动转换成拼音的功能。如图:

五、精简了下JS调用,增加了一个JQ库,本来一直不太喜欢用那东西,会让自己忘掉很多js基础的,但现在因为工作了要讲究效率了,所以在自己的博客上也来试试。
六、统一了下文章路径的那个过程:
就是这段代码,到处都重复,如果以后要改点啥,估计还得去修改N个文章,还是统一了好。
七、我有一篇文章里加入了FLV视频,可新版的pjblog在UBB里居然没有FLV标签。。
O了,有些多,我也乱了,暂时就统计这些,其它的期待你的发现了。
继续增加:
八、添加编辑文章成功后,点击返回你所发表的日志,地址错误(又是手误)
最烦恼的莫过于文件路径了,在开发出生成静态功能的时候,却没有考虑到栏目文件夹的功能。现在有这么多文章了,又开发出栏目文件夹功能。。唉....烦恼
不过其它的感觉还好,再就是这pjblog3.1XXX有些太恐怖了,APP服务器全局缓存太大了,一个文章一个缓存变量~~还有CACHE目录下的静态列表缓存,其实并没有减少与数据库的交互次数,也感觉不到这样的优异之处。
复制内容到剪贴板
程序代码
程序代码'*************************************
'自定义读取缓存路径 by evio
'*************************************
function caload(id)
...
application.Lock
application(CookieName&"_articleUrl_"&id) = caload
application.UnLock
set rex = nothing
end function
关于js文件,我老想不通,最新版的pjblog为什么有AJAX库文件了,在AJAX.asp中,还有重新去“CreatexmlHTTP”~
在前台添加文章时,当鼠标离开“别名”文本框时,会出现错误,原因估计是手误吧,其ajax事件中的get url的参数错误了。
然后我们来看看pjblog 现在自带的“相关文章”功能吧:Getarticle.asp 部分代码:
复制内容到剪贴板
程序代码
程序代码假设该文章有tag 3个,设一变量X来计算--> X=3
再设一变量Y 为与数据库交互次数。
......
Set Rs=conn.Execute("Select * from blog_Content where log_ID="&id&"") 'Y=1
......
if not rs.eof then
......
related_tag=split(related_tag,"}") '这里转换成的数组元素数量,会比实际tag数量多一个,假设其中related_tag={a}{a}{a}空,明白split的朋友应该一看就懂的。
......
DO until i>Ubound(related_tag) '因此这里在会循环X+1次,在我们所假充的标签TAG个数的前提下,也就是4次。
Set RsT=conn.Execute("Select log_Title,log_id,log_ViewNums from blog_Content where log_tag like '%"&related_tag(i)&"}%' and log_ID<>"&id&" order by log_PostTime desc")
if not RsT.eof then
Do until Rst.eof
......
Rst.movenext
Loop
End if
Set RsT=nothing
......
Loop
'上面循环过后,与数据库交互次数公式:Y=Y+X+1 按最初所假设的X值来算,此处最终Y=5。 ......
DO until i>Ubound(related_tag)
Set RsT=conn.Execute("Select log_Title,log_id,log_ViewNums from blog_Content where log_tag like '%"&related_tag(i)&"}%' and log_ID<>"&id&" order by log_PostTime desc")
if not RsT.eof then
Do until Rst.eof or i4=i2_2
......
if blog_postFile = 2 then
urlLink = Alias(RsT(1)) '如果是静态生成模式,此处还得与数据库有一次交互。
else
urlLink = "article.asp?id="&RsT(1)
end if
......
Rst.movenext
Loop
......
Set RsT=nothing
......
Loop
'上面循环过后,其与数据库交互次数就不固定了,如果循环第一次,检索第一个TAG的相关文章时,其结果满足第一页的显示条数,而跳出了循环,就是 10+1次,
'如果3个标签都循环到了,那就是 3+10次,其中还要排除如果有两个TAG都共同拥有一篇相关文章的情况,如果出现一次,则在此数字上加1
......
end if
下面看我增加数据库交互次数统计的变量后,其计算出来的结果吧(共3个TAG):SQL:查询数据库29次

唉,还有一点,这上传了一个图片才发现,原来默认了上传用动态地址输出的,无故还增加2次数据库交互(一次是根据ID检索出图片地址,一次是统计图片或附件的下载次数),当然这功能是好,只是呢,如果一篇文章里面带十个图,无故就增加了20次数据库交互次数了。再说博客不像大型的门户站,为节约不必要的带宽资源及连接数,个人站点而已也没有太多盗链的。而下载统计更没必要了,个人站访问量也没多少,统计了也没意思的。为什么后台不增加一个开关功能呢(目前后台只有盗链开关而没有关闭动态地址输出的功能)。
唉。。。我全给XX掉。辛苦啊,还好昨天有个网友bestchao陪我聊着,弄了近4个小时。。周末的“黄金”时间,呵呵。
问我改了啥?
一、老文章路径不变,新文章新路径。
二、地址中去掉了烦恼的“default.asp”,这很烦恼的,要改N个文件
三、XX掉了相关文章。
四、修正了下添加文章时判断文件名重复的错误,并修正了在编辑文章时,鼠标点入了别名的文本框中再离开时出现的验证错误标识,原因是检查重名时没有将本身文章的别名排除,以及增加了一个自动转换成拼音的功能。如图:

五、精简了下JS调用,增加了一个JQ库,本来一直不太喜欢用那东西,会让自己忘掉很多js基础的,但现在因为工作了要讲究效率了,所以在自己的博客上也来试试。
六、统一了下文章路径的那个过程:
复制内容到剪贴板
程序代码
程序代码if IsBlank(recpart) or isold=1 then
recpart = "article/"
else
recpart = "article/"&recpart&"/"
end if
recpart = "article/"
else
recpart = "article/"&recpart&"/"
end if
就是这段代码,到处都重复,如果以后要改点啥,估计还得去修改N个文章,还是统一了好。
七、我有一篇文章里加入了FLV视频,可新版的pjblog在UBB里居然没有FLV标签。。
O了,有些多,我也乱了,暂时就统计这些,其它的期待你的发现了。
继续增加:
八、添加编辑文章成功后,点击返回你所发表的日志,地址错误(又是手误)
发表评论


文章来自:
Tags: 


现在测试版增加的邮箱通知功能等,其实挺不错的,提升用户黏度,基本所有的博客程序都有这个了,你是否也该考虑加入这个~