如果没有人访问网站时,它不会工作,数据没有更新。
如果有人访问时,它就应该去扫描别人的网页,将结果保存到自己的数据库中,并将结果发给访问者。
但是如果有多人访问时,它也应该只去扫描一次就足够,其他人共享自己数据库就行。
有什么办法做这种控制呢?
10 个解决方案
#1
数据库里记一个时间戳
#2
隔1个时间更新一次,每次写个时间截,每次访问判断一下。
#3
是扫描股票行情的,隔3秒钟就要跑去扫描了。
#4
增加两个字段 一个是网页地址的字段url 另外一个是是否被访问过的字段
url mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问
url mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问
#5
数据先存到自己的数据库
另外建一个表
目标地址,更新时间,间隔
有请求时,检查(更新时间+间隔)决定是否需要更新数据
另外建一个表
目标地址,更新时间,间隔
有请求时,检查(更新时间+间隔)决定是否需要更新数据
#6
这种情况还是把更新操作放到后台程序里面做吧。
#7
虚拟主机,无法控制后台!
#8
呃……好吧,当我没说
#9
只能说现在的技术服务突飞猛进,即使是年服务费数百元的虚拟主机也能做出不错的股票行情查询,记得十年前,深圳证券交易所的一个附属公司,要搞个网站,服务器购买SUN公司的,总共加起来数百万投入,现在回头看,真是沧海桑田。
我搜索的股票行情是越南河内证券交易所的,现在100多个股票,行情刷新不是很快,数据量不是很大,原因当然也跟市场大小有关,每天只交易两个半小时,当地时间早上8:30~11:00,北京时间9:30~12:00,在这段时间扫描数据就可以了,反正一个虚拟主机一个access表就能搞定。
#10
伪代码,应该很容易明白吧~~~
if(比较当前时间戳与已有数据时间戳,过期时) {
获取新数据;
更新当前时间戳到数据时间戳;
}
输出当前数据;
if(比较当前时间戳与已有数据时间戳,过期时) {
获取新数据;
更新当前时间戳到数据时间戳;
}
输出当前数据;
#1
数据库里记一个时间戳
#2
隔1个时间更新一次,每次写个时间截,每次访问判断一下。
#3
是扫描股票行情的,隔3秒钟就要跑去扫描了。
#4
增加两个字段 一个是网页地址的字段url 另外一个是是否被访问过的字段
url mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问
url mark
当url=‘http://aaa.com/a.php?id=1’ 时候mark=1的话说明已经访问过了,为0时说明还没访问过
也可以增加一个访问时间的字段,以便多长时间再次访问
#5
数据先存到自己的数据库
另外建一个表
目标地址,更新时间,间隔
有请求时,检查(更新时间+间隔)决定是否需要更新数据
另外建一个表
目标地址,更新时间,间隔
有请求时,检查(更新时间+间隔)决定是否需要更新数据
#6
这种情况还是把更新操作放到后台程序里面做吧。
#7
虚拟主机,无法控制后台!
#8
呃……好吧,当我没说
#9
只能说现在的技术服务突飞猛进,即使是年服务费数百元的虚拟主机也能做出不错的股票行情查询,记得十年前,深圳证券交易所的一个附属公司,要搞个网站,服务器购买SUN公司的,总共加起来数百万投入,现在回头看,真是沧海桑田。
我搜索的股票行情是越南河内证券交易所的,现在100多个股票,行情刷新不是很快,数据量不是很大,原因当然也跟市场大小有关,每天只交易两个半小时,当地时间早上8:30~11:00,北京时间9:30~12:00,在这段时间扫描数据就可以了,反正一个虚拟主机一个access表就能搞定。
#10
伪代码,应该很容易明白吧~~~
if(比较当前时间戳与已有数据时间戳,过期时) {
获取新数据;
更新当前时间戳到数据时间戳;
}
输出当前数据;
if(比较当前时间戳与已有数据时间戳,过期时) {
获取新数据;
更新当前时间戳到数据时间戳;
}
输出当前数据;