303 "Z-BLOG月光随机文章显示插件的问题出在哪里?" "许多安装了Z-BLOG的网友均反映,月排行,年度排行均可以正常显示,为啥随机文章显示不正常,有的根本没有显示,有的时有时无." "许多安装了Z-BLOG的网友均反映,月排行,年度排行均可以正常显示,为啥随机文章显示不正常,有的根本没有显示,有的时有时无.
经过我的研究,发现该算法存在以下问题:
问题1:
If DateDiff(\"n\", GetFileDate(txtfilename), Now) <= 20 Then '每隔20分钟生成一次目标文件
WriteBlogFile=LoadFromFile(txtfilename,\"utf-8\")
Exit Function
End if
上面这段代码的意思时将缓存的文件(cache.htm)的生成日期同访问时博客文章时的服务器日期进行比较,如果小于等于20分钟的话,就继续加载cache.htm.也就是你的排行榜是刚才已经生成的.这样就导致了随机文件的第一个问题,如果随机文章在第一次没有找到合适的记录,只有再等20分钟,即使你在后台重建,也是一样的.因为在后台重建的时候,也要检查文件的生成日期.
解决办法1:在调试阶段,当前文章比较少的情况下,可以设置为1或者5.这个不是最终的解决办法,这个是临时调试用,比较合适。看看下面最终的办法.
问题2:
randomize
tempid=CStr(CInt(Rnd*CInt(lastid))+20)
strSql = \"select top 20 * from blog_Article WHERE ([log_Level]>2) AND log_ID>\" & tempid & \" order by log_ID \"
上面的代码是VB生成随机数的语句. lastid是你的最新的那篇文章的ID,CINT(lastid)将其转换为整型,然后乘以RND,该RND使用randomize随机化后,包含的是0-1之间的一个小数,好了,当生成的随机数是0.5时,那么假设你的最后一篇文章的ID是10,那么tempid=25,好了,通过下面的SQL语句从数据库中取大于文章ID大于25的,自然就取不到了.因为你文章最大的ID是10,就是最新那篇文章的.
下面是Rnd函数的定义:
Rnd 函数返回小于 1 但大于或等于 0 的值。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。
看到了吧,要解决这个问题,就是要修改tempid的生成.
解决办法2:在你的博客文章数据库中,随机数的下限是lowerbound是1,上限upperbound是最新文章的ID.将tempid的生成公式改为tempid=CStr(CInt(Rnd*CInt(lastid))+1).就可以彻底解决这个问题,估计最早月光把这里设置为20,可能是考虑先前删除了许多文章,由于文章的ID是不可复用的,是自动增加的,你删除一个文章,这个ID就作废了.以上算法并不十分完美,当算出的tempid处于上限时,如等于lastid,将仍然无记录可取。就需要-20。最后的算法应为:tempid=CStr(CInt(Rnd*CInt(lastid))-20).这里的20是你需要出现多少篇随机文章,就指定多少。
从上面的分析可以看出,在文章多的时候,根本不存在问题,当文章少于20篇,就会出现时有时无的情况.需要注意的是,轻易不要删除文章,尤其是大量连续的删除.一般删除是不影响的.以上两行代码均在blog.asp中可以找到。
"
304 "火速查看股票实时价格" "如果你在办公室或者工作场所,或公共场所,需要快速查看你的股票的实时净值。或者你需要查看关于你所购买股票的最新消息,那么使用搜索引擎。搜索引擎相比较股票网站或者你的大智慧软件有无可比拟的速度优势。" "如果你在办公室或者工作场所,或公共场所,需要快速查看你的股票的实时净值。或者你需要查看关于你所购买股票的最新消息,那么使用搜索引擎。搜索引擎相比较股票网站或者你的大智慧软件有无可比拟的速度优势。
现在百度或者Google在你输入股票的代码或者拼音简称,如招商银行,你输入招商银行,或者股票代码600036,便可以快速找到当前股票的实时行情。两个搜索引擎相比较而言,Google的有30分钟的延迟,也就是说,你看到的数据是30分钟前的。Baidu则为实时的数据,没有延迟。但Google同时提供几个财经网站的与该股票相关的链接,包括新浪财经, 搜狐证券, 雅虎财经,网易财经,和讯,东方财富,证券之星,金融界 。Baidu只是提供和讯网的导航。不过说句良心话,Google是最先推出这个功能的。下面是两大搜索引擎提供的股票搜索结果对比图:
"