ASP清除Application缓存的问题
Asp中的 Application 是一个【shì yī gè】🔈公用的【gōng yòng de】对像🥐
我们可以用一🌧个语句【gè yǔ jù】来清理服务器上的所【shàng de suǒ】🍍有🔌Application 对像【duì xiàng】
application.contents.removeall '清空所【qīng kōng suǒ】有缓存📰
会员登陆【dēng lù】后【hòu】👿修改🤡application变量【biàn liàng】👕,比如我🥓们用【yòng】一个【yī gè】🌺application("login")=true表示登🈺陆【lù】了【le】.那么登陆【dēng lù】🥋时【shí】就应该先进行【jìn háng】一⚽次的【de】💱application("login")=ture
直到其🏅退出后【hòu】🐚才会将🌗其值修🔋改🤡为false.
当然【dāng rán】登🏊陆前先【lù qián xiān】检查一下【xià】⛵application("login")的【de】值😽,若不存在或【huò】📴是【shì】false就可以让其进行【qí jìn háng】💐登陆【dēng lù】🥋,否则做🚭出限制【chū xiàn zhì】💃跟转至错误提示页面.
而【ér】🤚session只是【shì】一个【yī gè】🌺单用户【yòng hù】🖌的【de】💱级别,不合适【bú hé shì】用【yòng】的【de】💱.而【ér】🤚session变量是【biàn liàng shì】⛓其他用户【yòng hù】🖌根本取不到的【bú dào de】💱.
剩下要【shèng xià yào】🔱考虑的【kǎo lǜ de】✈是非正【shì fēi zhèng】常退出等✂,如果【guǒ】🥂user1直接关🥚闭的【de】💱浏览器【liú lǎn qì】,那么没💯有退出【yǒu tuì chū】时【shí】进行【jìn háng】🚩修改🤡application("login")的【de】值😽,这时【zhè shí】会👇发生所有【yǒu】用户【yòng hù】🖌都登陆【dōu dēng lù】🥋不上的【bú shàng de】💱问题.这里要用【yòng】到🈺session_OnEnd事件进行【jìn háng】一⚽次的【de】💱清【qīng】除变量【biàn liàng】👕,这里面显然【xiǎn rán】🎙要加上😫application("login")=false或【huò】📴null这样【zhè yàng】🤢的【de】💱修改🤡.但是【shì】还要把💡session.tiomeout时间设【shí jiān shè】🈸短一点,要不如【yào bú rú】果【guǒ】🥂某用户【yòng hù】🖌关闭后【hòu】📋要等✂很长的【hěn zhǎng de】💱时间后【shí jiān hòu】🐚才可能【cái kě néng】🕳登陆的【dēng lù de】🌙.但是【shì】过💍短又不【duǎn yòu bú】行【háng】👋,如果【guǒ】🥂太短的【tài duǎn de】话【huà】🐧,你的【nǐ de】💱这个【gè】🌺用户【yòng hù】🖌连一个【yī gè】🌺填写表【tián xiě biǎo】单完成【dān wán chéng】🤭的【de】💱机会都没有【yǒu】📜,那么user2会抢先登陆【dēng lù】🥋进去的【de】🅾.显然【xiǎn rán】🎙,这里最【zhè lǐ zuì】好的办【hǎo de bàn】🤲法就是【shì】增加一个【yī gè】提醒🤳机制进行【jìn háng】👋计时【shí】,比如我🥓设的【de】💱是【shì】十分钟【shí fèn zhōng】,在登陆【zài dēng lù】💪者的页【zhě de yè】🕸面上会🙁出现计时的【shí de】🕑,倒计至【dǎo jì zhì】🎪9分钟左🛷右让其🤳点一个【yī gè】🌺按钮与服务器【fú wù qì】🈶交互一下【xià】⛵,这样【zhè yàng】🤢计时器【jì shí qì】重新从十分钟【shí fèn zhōng】开始计时【shí】.或【huò】📴者写一个【yī gè】🌺小的【de】💱自动请求【qǐng qiú】服🕉务的【de】🎎ajax,让其每隔🔳1分钟向【fèn zhōng xiàng】📻服务器【fú wù qì】🈶发一次请求【qǐng qiú】💏,这样【zhè yàng】🤢时【shí】间你可以设置🌄为略大于【yú】🏠1分钟而【ér】🤚保证在📀线者的【de】💱不掉线【bú diào xiàn】,别人不能抢入😑,而【ér】🤚其关闭后【hòu】📋,显然【xiǎn rán】🎙1分钟后【fèn zhōng hòu】🐚允许别🦋人登陆【dēng lù】🌛.
过期页【guò qī yè】面的处【miàn de chù】✌理【lǐ】🕞,如果【guǒ】🥂一个【yī gè】🌺用户【yòng hù】在✒session时【shí】间内⏸无任何【wú rèn hé】服务器【fú wù qì】🈶动作的【de】🙍话【huà】💧,可由别的【de】登陆【dēng lù】🌽用户进【yòng hù jìn】🎷行【háng】👋抢入😑,这时【zhè shí】,也就是【yě jiù shì】十分钟【shí fèn zhōng】后【hòu】🐚,该页面进【yè miàn jìn】🧗行【háng】👋了【le】刷新操作🚃,此时【shí】必须把这个【gè】🌺用户进【yòng hù jìn】🎷行【háng】👋一个【yī gè】🌺过期处【guò qī chù】理【lǐ】🕞.不能让其再进😄入😑,如果【guǒ】🥂不加过期处【guò qī chù】理【lǐ】🕞,此时【shí】会发生两个【gè】🌺人同时【rén tóng shí】在线🐙的【de】💱情况.
抢登陆【qiǎng dēng lù】⛺,假定两【jiǎ dìng liǎng】地都有【yǒu】用户【yòng hù】在✒同时抢【tóng shí qiǎng】登陆【dēng lù】⛺时【shí】,如果【guǒ】🥂进行【jìn háng】处理【lǐ】🗨.user1登陆【dēng lù】🥋时【shí】发现🚼application("login")的【de】值😽是可以【shì kě yǐ】登陆的【dēng lù de】🌙.于【yú】🏠是【shì】就正在填写【zài tián xiě】,而【ér】🤚user2此时【shí】也👝在读取【zài dú qǔ】🤬application的【de】值😽,发现🚼可以登陆【dēng lù】🥋,那么两【nà me liǎng】者会同时【shí】登陆【dēng lù】🥋上的【de】💱.解决的【de】💱办法是【shì】:
1,页面进【yè miàn jìn】🧗行【háng】👋取值🦇的【de】💱方法【fāng fǎ】,也就是【yě jiù shì】说当有【yǒu】人请求【qǐng qiú】👤login页面时【yè miàn shí】就先进【jiù xiān jìn】行【háng】👋application值🦇的【de】💱更改【gèng gǎi】🤡.其他用户【yòng hù】🖌再请求【qǐng qiú】💏时已经【shí yǐ jīng】不能请【bú néng qǐng】求💏到页面【dào yè miàn】了【le】.或【huò】📴请求【qǐng qiú】💏到了【le】不允话【huà】登🚕陆【lù】的【de】💱页面信【yè miàn xìn】息【xī】.但如果【dàn rú guǒ】🥂是【shì】这样【zhè yàng】🤢的【de】话【huà】🐧,不管登🥊陆没有【lù méi yǒu】登陆【dēng lù】🥋都是【shì】要清【qīng】🚯除的【de】🚋,所以【suǒ yǐ】session_OnEnd事件中【zhōng】🦀不管是【bú guǎn shì】否登陆【dēng lù】🐂都要进行【jìn háng】👋application的【de】💱靖除的【de】🚋.
2.锁定【suǒ dìng】变😟量的【de】方🔕法,application变量是【biàn liàng shì】⛓可以锁定【suǒ dìng】🐽的【de】💱,进入😑页面时【yè miàn shí】先将application进行【jìn háng】👋锁定【suǒ dìng】🐽,而【ér】🤚其他用户【yòng hù】是【shì】⛱取不到值🦇的【de】💱.取不到值🦇时就好【shí jiù hǎo】办了【le】🤢,提示有【yǒu】用户【yòng hù】🖌正在尝【zhèng zài cháng】试【shì】登陆【dēng lù】🥋.当然【dāng rán】无论那个【gè】🌺尝试【shì】登陆的【dēng lù de】🌙是【shì】否登陆【dēng lù】🐂都要对其进行【qí jìn háng】💐解锁的【jiě suǒ de】🚚.也就是【yě jiù shì】说在关👝闭页面中【zhōng】🦀,最好是【zuì hǎo shì】这样【zhè yàng】🤢,写一个【yī gè】🌺ajax进行【jìn háng】👋application进行【jìn háng】👋解除锁定【suǒ dìng】🐽.当然【dāng rán】登🏊陆【lù】完成时【shí】也要进【yě yào jìn】行【háng】👋解锁定【jiě suǒ dìng】🐽.最后【hòu】是【shì】🌱如果【guǒ】🥂意外时【shí】,session_OnEnd也要进【yě yào jìn】行【háng】尝试【shì】⛷解锁定【jiě suǒ dìng】🐽,如果【guǒ】🥂变量【biàn liàng】正在🎰锁定【suǒ dìng】🐽,则解锁定【jiě suǒ dìng】🐽就是尝【jiù shì cháng】试【shì】解锁定【jiě suǒ dìng】🐽的【de】💱意思.
当然【dāng rán】,数据库🐉法也可以用【yòng】的【de】💱,数据库🐉中【zhōng】🦀有【yǒu】一个【yī gè】🌺字段进行【jìn háng】👋标志【biāo zhì】,但这样【zhè yàng】🤢的【de】💱解决方【jiě jué fāng】法只是【fǎ zhī shì】将使用【yòng】application变量【biàn liàng】👕,换成了【le】使用字【shǐ yòng zì】🔬段而已【duàn ér yǐ】🎖.其他都是一样【shì yī yàng】的【de】💱.但速度上与安全上依🐴赖于【yú】🏠application变量【biàn liàng】👕比较好的【de】💱.
一楼【yī lóu】,session变量是【biàn liàng shì】⛓一个【yī gè】🌺用户【yòng hù】🖌级变量【biàn liàng】👕,请问另一个【yī gè】🌺用户【yòng hù】在✒登陆【dēng lù】🥋时【shí】如果【guǒ】🥂得到其他用户【yòng hù】🖌的【de】💱变量【biàn liàng】👕?这样【zhè yàng】🤢不乱套了吗【le ma】🤧?别忘记【bié wàng jì】🙊一句话【yī jù huà】💧:每一个【yī gè】🌅用户【yòng hù】在✒请求【qǐng qiú】页🐪面时【shí】都自动生成一个【yī gè】🌺session的【de】💱.而【ér】🤚application则是【shì】全局变量【biàn liàng】👕,网页的【de】🧒即时【shí】聊🕙天就是【shì】来源于【yú】👳这个【gè】🌺变量【biàn liàng】👕的【de】💱.但变量【biàn liàng】👕过大时【shí】🌨会占用【yòng】服务器【fú wù qì】🈶较大的【de】💱内存的【de】💱!
二楼【èr lóu】,就是【shì】一个【yī gè】🌺统计在线用户【yòng hù】🖌的【de】💱程序,请问,考虑到【kǎo lǜ dào】两个【gè】🌺用户【yòng hù】在✒同时尝【tóng shí cháng】试【shì】📺登陆的【dēng lù de】🌙情况吗【qíng kuàng ma】🏷?这种方🖋法可以是【shì】登陆【dēng lù】🥋上,但必须【dàn bì xū】加代码再测试【shì】一下是【yī xià shì】🦔否有同【fǒu yǒu tóng】时【shí】在线🐙用户【yòng hù】🖌,如果【guǒ】🥂有【yǒu】,必须让【bì xū ràng】其当即退出登陆【dēng lù】🥋才行【cái háng】👋的【de】💱,这样【zhè yàng】🤢才能做【cái néng zuò】到单用户【yòng hù】🖌登陆【dēng lù】🥋.
不过一🕘个【gè】🌺用户【yòng hù】🖌登陆的【dēng lù de】🌙网站你干什么用呢【yòng ne】🈂?如果【guǒ】🥂是单单【shì dān dān】限制登陆【dēng lù】🥋用户【yòng hù】🖌不能进入😑login界面的【de】📰话【huà】💧,可以使用【yòng】session值🦇,在登陆【zài dēng lù】💪界面中【jiè miàn zhōng】🚍进行【jìn háng】一⚽次的【de】💱简单判【jiǎn dān pàn】断〰嘛.那样的【de】⛏话【huà】💧又非常简单,比如登【bǐ rú dēng】陆【lù】🥋用户【yòng hù】🖌登陆【dēng lù】后【hòu】👿会有【yǒu】session("username"),在登陆【zài dēng lù】💪页面上🏸去查这👪个【gè】🌺查是否【chá shì fǒu】为空或【huò】📴是否存【shì fǒu cún】在,若为空【ruò wéi kōng】💈或【huò】存在🌃则正常【zé zhèng cháng】登陆【dēng lù】🥋,否则转向错误页面不就行【jiù háng】👋了【le】?
关键词:ASP
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 11
- 11
- 2
- 2
- 15