Ajax 板


LINE

大家好 小弟現要撰寫一個網站 功能如下: 這個網站有一個用html table做成的行事曆 所有使用者可以上來看本月的行事曆 也可以新增事項上去 這樣的功能 需要把資料整理成table易處理的形式 也就是大概要4~5個陣列 每個陣列有7個data 這樣就可以用迴圈去做出多個<tr>以及其內的<td> 就做出行事曆的樣貌了 小弟想問的是 整理資料這件事 應該由前端還是後端來做? 用後端做 怕server loading太大 用前端做 怕client端會跑太久 請問各位大大高見? 謝謝! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.106.65
1F:推 mrbigmouth:前端 client端都會跑太久的東西 server肯定吃不下 12/21 14:28
2F:→ mrbigmouth:而前後端在跑的時後前端還不是一樣要等? 12/21 14:28
3F:→ mrbigmouth:分功上 後端要作的在於有安全需要的東西 比如說帳號 12/21 14:29
4F:推 adamp3:肯定是前端 你試想假設同時有幾萬人做同樣的指令 要放哪好? 12/21 15:53
5F:→ TonyQ:資料整理聽起來是server side , data provider 該負責產出 12/22 01:46
6F:→ TonyQ:的 json ,這個應該是歸類在server side 。 12/22 01:46
7F:→ TonyQ:我的看法是「提供資料」=> server side的責任 12/22 01:47
8F:→ TonyQ:界面、事件、互動=> client side的責任 12/22 01:47
9F:→ TonyQ:另外我不同意mrbig 說client端跑太久的東西 server吃不下 12/22 01:47
10F:→ TonyQ:client 的 performance 相對於 server 是超級弱的。 12/22 01:47
11F:→ TonyQ:同樣一個xml parsing , server 只要1s , client 可能要2~4s 12/22 01:48
12F:→ TonyQ:只是client用的是使用者的資源,server用的是server的資源 12/22 01:48
13F:→ TonyQ:考慮到資源的運用上,能盡量轉嫁給user的就盡量凹。 12/22 01:48
14F:→ TonyQ:但 server 是不是吃不下,要視狀況決定。 12/22 01:49
15F:推 mrbigmouth:假設server的速度是client的4倍 同時有4人以上使用serv 12/22 10:41
16F:→ mrbigmouth:er的機率有多少? 如果很少甚至通常只有一人的話當然可 12/22 10:41
17F:→ mrbigmouth:以全丟給server... 12/22 10:41
18F:→ mrbigmouth:但還要考慮網路傳輸的問題 通常情況,未經過處理的原始 12/22 10:42
19F:→ mrbigmouth:資料會比經過處理格式化的資料要小 傳輸速率也會快 12/22 10:42
20F:→ mrbigmouth:再怎考慮各種情形 我還是覺得能轉嫁給user的就全給user 12/22 10:44
21F:→ mrbigmouth:server只要考慮"應該丟給使用者什麼資料才安全"即可 12/22 10:44
22F:推 mrbigmouth:除非你的主機已經強大到跟google一樣的可當雲端層級... 12/22 11:07
23F:→ mrbigmouth:而且還到處都有分支主機保證傳輸速率在一定之內... 12/22 11:09
24F:→ mrbigmouth:雲端計算的模式才會有比較快的可能 12/22 11:10
25F:→ TonyQ:我覺得你想的有點多 如果是預先處理好的資料 在存檔時就可以 12/22 14:11
26F:→ TonyQ:先按照他要輸出的資料格式先做好。我用1:4 是很客氣的假設 12/22 14:11
27F:→ TonyQ:他輸出時還要經過處理,正常來講作為資料提供通常都已經先 12/22 14:12
28F:→ TonyQ:做好該作得資料格式轉換甚至是cache 。而且server橫豎是需要 12/22 14:12
29F:→ TonyQ:提供資料的。而且未經過處理的資料怎麼可能比格式化還小, 12/22 14:12
30F:→ TonyQ:真的是這樣那根本是格式有問題吧。 12/22 14:12
31F:→ TonyQ:再加上server 還可以作gzip,比起丟一堆大量的原生資料進行 12/22 14:13
32F:→ TonyQ:分析,當然是先搞定資料啊。Orz 12/22 14:14
33F:→ TonyQ:他的這個需求計算的部份很小,倒是資料怎麼儲存怎麼最低成本 12/22 14:16
34F:→ TonyQ:轉換成VO的多,幾乎都可以將運算量壓到最低的case。 12/22 14:16
35F:→ TonyQ:應該要討論的是怎麼儲存資料跟怎麼轉換成Json最有效率, 12/22 14:17
36F:→ TonyQ:client跟server 的效能根本不是這個問題的重點。 12/22 14:17
37F:→ TonyQ:我不是不同意可以轉嫁成本給 client ,但是幹嘛要先把成本弄 12/22 14:20
38F:→ TonyQ:得很高再讓client 收尾巴,一開始就讓成本很低就好啦... 12/22 14:21
39F:推 mrbigmouth:做gzip也需要主機端的資源 預先以需要輸出的資料格式儲 12/22 14:42
40F:→ mrbigmouth:存也只是把運算時花的時間移到儲存時 12/22 14:42
41F:→ mrbigmouth:我相信這樣搞之後 也許最後加起來的總消耗時間或許真的 12/22 14:43
42F:→ mrbigmouth:比"全部丟給client端就好"加總再平均之後來得快啦... 12/22 14:45
43F:→ mrbigmouth:但你確定原po需要的是這種答案?|| 12/22 14:45
44F:→ mrbigmouth:我所謂"處理過後的資料"指得是"已經確定必須的資料"再 12/22 14:48
45F:→ mrbigmouth:上"格式"後的結果,即使是json都要加上一堆{}"": 更何況 12/22 14:48
46F:→ mrbigmouth:是html...原始資料肯定比較小啊... 12/22 14:49
47F:→ mrbigmouth:至於server端的資料從何而來...我一直以為大部分初學者 12/22 14:51
48F:→ mrbigmouth:都是直接從DB撈啦...如果原po是那種是先按輸出做好格式 12/22 14:52
49F:→ mrbigmouth:外加視情況寫好快取的人...千萬不要聽我的話 我是小咖 12/22 14:52
50F:→ TonyQ:你原始資料還不是要有separator 要有escaping 12/22 14:56
51F:→ TonyQ:不然你怎麼分段切割 12/22 14:57
52F:→ TonyQ:{} "" 那都是判斷資料格式中的必須 你省他只是找自己麻煩 12/22 14:57
53F:→ TonyQ:從db撈出來也不過就是一堆RecordSet 你還是要output啊 12/22 14:58
54F:→ TonyQ:我很確定這個需求不可能產生你說的這種情況,這種需求我 12/22 14:58
55F:推 mrbigmouth:所以你的意思是 json比CVS還小? 從DB撈出來的資料轉為 12/22 14:58
56F:→ mrbigmouth:CVS花的資源比轉為json還大? 12/22 14:59
57F:→ TonyQ:做過沒有二三十次也至少有十次以上,很基本的需求啊。 12/22 14:59
58F:→ mrbigmouth:更正 是CSV 12/22 15:00
59F:→ TonyQ:我覺得如果你output 是 cvs ,1.除非你db就是存cvs字串 12/22 15:00
60F:→ TonyQ:不然轉csv 跟轉json來講,效能上幾乎是一樣的。 12/22 15:00
61F:→ TonyQ:但是前者可以避免client side 的多餘邏輯跟運算效能。 12/22 15:01
62F:→ TonyQ:2.csv 跟json 來講 誰大誰小 以array來講 ok 他的確有機會 12/22 15:01
63F:→ TonyQ:小一點,但是那個差距幾乎可說是小於可忽略的。 12/22 15:01
64F:→ TonyQ: *我的意思是轉json 12/22 15:02
65F:→ TonyQ:而且你說csv,那他就限定不能有多層結構,一有多層結構csv 12/22 15:03
66F:→ TonyQ:絕對沒有json經濟。 12/22 15:03
67F:→ TonyQ:當然 我也不是建議原po輸出html ,如果你以為我說的資料提供 12/22 15:07
68F:推 mrbigmouth:問題就在於從DB撈出來的資料不會有多層結構啊... 12/22 15:07
69F:→ TonyQ:是html,那的確是誤會。因為單就產html這件事情而言,我是 12/22 15:07
70F:→ mrbigmouth:你有多層結構就肯定經過"在處理=花資源"了 12/22 15:07
71F:→ TonyQ:能接受client產html的。 12/22 15:07
72F:→ TonyQ:是嗎?你今天有一個日期有多個事件,這就是一個層次了。 12/22 15:08
73F:→ TonyQ:這些日期可能又會有跨日期的事件,也是層次。而且一樣為什麼 12/22 15:08
74F:→ TonyQ:client 可以直接吃的json 不用,要弄個csv,然後client還要 12/22 15:09
75F:→ mrbigmouth:我覺得我們這樣講滿亂的 你先講吧 我晚上有空再po一篇 12/22 15:09
76F:→ TonyQ:再稿支 csv parser ,量大還會lag(client 效能差) 12/22 15:09
77F:→ TonyQ:我不覺得server產csv跟產json 有量上的差別,你說產xml或 12/22 15:09
78F:→ TonyQ:html會肥 我很同意,但是json 沒有這個問題。 12/22 15:10
79F:→ TonyQ:我覺得我們直接舉實例來討論可能比較快。 12/22 15:10
80F:→ TonyQ:我回文啦 剩下的交給你回吧 12/22 15:14







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燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP