Ajax 板


LINE

※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言: : 先查询的会因为回传慢而後显示? : 在PHP那方面有取消资料库Query的功能吗? : client这方面该怎麽防范这种 : 重复执行同一支ajax造成的问题? : -- : → TonyQ:一个查询进行中时先lock住 ui , 不要让使用者改就好. 05/16 18:03 : → TonyQ:多个ajax同时进行中时 , 的确是不能保证顺序没错. 05/16 18:03 : 推 TonyQ:不然就是你让checkbox的反应时间慢一点 , ex.两秒後才反应 05/16 18:14 : → TonyQ:这段期间使用者的异动让它动这样. 总的来说 ,减少request跟 05/16 18:14 : → TonyQ:提高 mysql 查询的效能 (index,减少查询复杂度) 双管齐下. 05/16 18:15 : → TonyQ:才能得到比较好的效益. 05/16 18:15 : → JYHuang:效能会低我猜主要是因为资料相当多 05/16 19:41 : ※ JYHuang:转录至看板 PHP 05/16 19:42 : → fillano:另一个方法是用queue来管理这些ajax动作,让他保证循序执 05/16 20:43 : → fillano:行。不过我怕如果多了,说不定放在queue里面的东西越来越 05/16 20:44 : → fillano:多...所以lock住ui是第一个选择,除非对方要求... 05/16 20:45 : → JYHuang:我提出的方案也是lock ui,不过不被接受 = =" 05/16 20:54 这个大概只能用硬解(至少小弟也只想的到这种…囧) client 端的硬解有几种,其一是 T 大的 ui lock, 另一种是费大的 request queue, 不过如果是小弟的话,会视情况在 request queue 上做一些手脚, 也就是每一个 ui event / action 转成 request 进入 queue 的时候, 都先 hold 住 2 秒(或 1 秒半或任何比较好的秒数), 如果确认没有新的 request 送过来,就视为正确然後放他进 queue, 不然就更新当下的 request 并且再多 hold 住 1 秒。 (因为连续性操作有可能是使用者在更新前次的操作失误) 伺服器端的硬解就比较麻烦了,我们将他拆成两个情况检讨, 如果是属於多层次的运算程序,可以在各运算之间插入检查点, 也就是预先准备一个 table 或 file 或 mem 的 cache, 新进的 request 会去产生异动记录,让运算间的检查点做 check, 发现有新的 request 就放弃所有已做过的运算全部重来一次 (也可以视情况不理会,先丢出一个阶段性的结果, 伪装成 ui 的过度操作导致 server 没有收到讯号或着什麽的… :p ) 如果伺服端的运算是属於直深式的那就很难做了, (譬如一组复杂的 SQL 就进去拉结果资料) 当然你可以 show processlist 做 filter 然後 kill(在 mysql 下), 但若用这种危险到不行的动作,还不如直接让他算完吧… orz 这边能避免的也只有,如果後面有进来新的 request , 在送出资料前做刚刚提到的最後一次异动检查, 假如需求被更新了,那是不是要放弃目前的结果集再重新捞一次。 讲个比较不负责任的东西 XDD 如果这些 checkbox 的触发,是在对原本的 query 做 filter 或扩展, 那麽上面提到的伺服器端的重新运算,其实可以分别降低成 将已取得的结果集筛选後传回(如果是 filter), 将目前缺少的集合部份用新的 query 下去取然後合并至目前的(如果是拓展) -- 题外话,要提昇 DB 效能就又是另一回事了, 抓 memcache 出来用,或针对 key data 做衍生的新 table, 甚至用打基础的方式做每日的 data parsing 拆解出 search 用的资料等等… 小弟能想到的几个作法大概也就是这样了吧 XDD --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.228.229
1F:→ gpmm:啊…少看到 T 大也有讲到暂缓送出这个 XDD 05/17 00:30
2F:推 Kelunyang:那编号呢?每次返回的时候的编号必须要和client的编号 05/17 00:43
3F:→ Kelunyang:相符才会显示? 05/17 00:43
4F:→ Kelunyang:另外G大这个延伸查询的方法,意思是要建立很多个View吗 05/17 00:43
5F:→ Kelunyang:吗@@?听起来好像蛮快的,但是会不会把资料库搞得很复杂 05/17 00:44
6F:→ gpmm:编号?编号是指什麽…囧a" 05/17 00:50
7F:推 Kelunyang:就是因为我不能叫Server砍掉正在查询的Thread 05/17 01:35
8F:→ Kelunyang:那我送出request的时候就写比如id=0001,每次改变都+1 05/17 01:36
9F:→ Kelunyang:这样最後返回的东西如果不等於现在的id,就不显示 05/17 01:36
10F:→ Kelunyang:这样不行吗@@" 05/17 01:36
11F:→ gpmm:不行 XDDDD 05/17 01:37
12F:→ gpmm:你的理论正确,但是对使用者来说应该会很挫折 XDD 05/17 01:37
13F:→ gpmm:因为只要他不小心多按了,回来的资讯就会消失在黑洞里 05/17 01:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP