PHP 板


LINE

看板 PHP  RSS
※ 引述《kingoface (桑原)》之銘言: : 哈囉,大家好! : 小弟剛剛想到了一個頗為無聊的問題. 的確是頗為無聊,根本不用考慮這個問題。 : 需要顯示資料的時候 : 1. : 我會在<body>上方寫個 : <?php : $exp_html='<table><tr><td>一堆資料庫的資料</td></tr><table>'; 這是不利維護的爛設計,網頁外觀無法由其他人修改。 在團體開發中會整死前端和美術人員, 就算只有一個人在開發,大專案的後期必定令你痛不欲生。 : 2. : <?php : //做了一堆資料庫 or foreach的運算 存在 $data : echo $data; 看不出來這跟1有什麼差別,就只是輸出的那包在同一個php內前面或後面算出來而已。 現在比較理想的作法是把view和其他部份切割開來, 不管你是用MVC,或SMARTY那種不明確的(M/C)+V,原則上都是這樣 (controller.php) 變數 = 資料; 變數 = 資料; ...... 參數陣列 = Array( 變數, 變數, 變數, ... ); (以參數陣列代入view.php) (view.php) (framework自動打開參數陣列) <?php echo 變數1; ?> ... <table> <?php foreach 變數2 as 列變數 : ?> <tr> <td><?php echo 列變數[欄位]; ?></td> </tr> <?php endforeach; ?> </table> ... 這裡面不但把資料準備和資料顯示分開在兩個檔案中 (當然最後view可能還是被include進來在同一個檔案裡,視framework實作而定) 而且資料都是在陣列和物件內包了又包,最後包成參數陣列送給view 這些變數傳遞的成本,並沒有讓MVC或SMARTY慢到人能夠察覺的地步 即使資料再多也一樣。 會慢到有差別,那表示 1)邏輯裡面有多重迴圈不能避免,或者沒察覺到的多重迴圈。 2)資料真的很多很多,多到沒有意義。 在2的狀況,瀏覽器通常會先掛。   -- 從前有個馬鈴薯王國 有個高貴偉大的國王 有的人尊敬他 有的人畏懼他 但有個人敢看不起他不只是一條龍 嘿呵 快出動 去征服 去擺平 嘿呵 快出征 去征服那條龍 嘿呵 快出動(宰了它!轟了它!)嘿呵 快出征 去征服那條龍 :■ Potatoes and Dragons (C)Alphanim France 2004-05 :. --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.163.12.174
1F:推 LaPass:嗯~ 總之就是這一篇說的這樣啦 XD 12/30 12:48
2F:推 kingoface:恩,了解,感恩大大的分享. 12/30 13:02
3F:推 ooopooo:pro! 12/30 23:08
4F:推 k900i:請問HTML先出來再用Javascript去讀PHP後innerHTML進td的作法 12/31 09:58
5F:→ k900i:是否就變成Ajax而比這兩例效能更差? 12/31 09:58
6F:推 LaPass:樓上那是個有趣的問題... 12/31 10:18
7F:→ LaPass:那會把一個request切成兩個以上request,但你html的部份可 12/31 10:22
8F:→ LaPass:以丟給nginx之類的做快取,就不用通過PHP去執行,這對效能 12/31 10:23
9F:→ LaPass:來說是比較好的作法。但缺點是會對SEO有影響,那些網路蜘蛛 12/31 10:23
10F:→ LaPass:通常不會看ajax抓出來的資料。 12/31 10:24
11F:→ LaPass:也就是說,比較適合一些私人的東西,例如Facebook、GMail就 12/31 10:25
12F:→ LaPass:這樣搞 12/31 10:25
13F:→ LaPass:而且以後做負載平衡時還可以把html等靜態資料主機跟php分開 12/31 10:26
14F:→ LaPass:,這會是比較好的作法。 12/31 10:26
15F:→ MOONRAKER:Ajax是另一個問題吧 他應用在有互動性或多層次查詢的時 12/31 12:26
16F:→ MOONRAKER:候 把一個大批次查詢切割成若干個小的查詢 每次輸出的資 12/31 12:27
17F:→ MOONRAKER:料量相對也少 而且受到使用者操作時間的影響 加總的效率 12/31 12:28
18F:→ MOONRAKER:並不像單一表格輸出要求那麼高 而且是有利介面設計的 12/31 12:29
19F:→ MOONRAKER:反過來講 如果是一個批次查詢的大表格 硬要用ajax可以算 12/31 12:33
20F:→ MOONRAKER:是規劃的錯誤 12/31 12:33
21F:→ danny8376:說到ajax 就想到可怕的GoogleBot 會解析JS OAO... 12/31 14:24
22F:推 LaPass:GoogleBot 會解析JS!! 太強大了.... OAO!! 12/31 15:42
23F:→ danny8376:我某個純AJAX (沒JS就只是個空樣板) 的網站 12/31 16:46
24F:→ danny8376:就這樣被GoogleBot爬內容了 看log也有GoogleBot 12/31 16:47
25F:→ danny8376:去爬AJAX資料的log... Google超可怕的啦!!! 12/31 16:48
26F:推 chenlarry:Google有寫一隻專門爬AJAX的機器人 囧 12/31 21:49
27F:→ xxxzzz:看不懂"..純AJAX (沒JS...",恐怖的是沒JS,GoogleBot解析JS 01/01 07:42
28F:→ danny8376:(沒JS"的話"就只是個空樣板) 01/01 18:03
29F:→ DongFeng:抽掉JS就只剩下空殼 網站一切資料都使用AJAX撈出的意思 01/01 20:22
30F:→ DongFeng:如果一個頁面需要用到多個不同性質的資料 $arr1、$arr2、 01/01 20:25
31F:→ DongFeng:$arr3等 並且這些資料在頁面上都有各自不同的使用區塊,那 01/01 20:26
32F:→ DongFeng:就會讓整體程式碼有好幾個包含html碼的<?php...?>區塊,如 01/01 20:28
33F:→ DongFeng:果加上其中又有判斷式又不想使用echo輸出html碼的時候,就 01/01 20:29
34F:→ DongFeng:會變成<?php...<?php...?>...?>這種巢狀的區塊, 總覺得這 01/01 20:30
35F:→ DongFeng:樣的呈現方式很雜亂, 不知道版上的前輩對於這樣的狀況有 01/01 20:31
36F:→ DongFeng:沒有什麼解決之道呢? 01/01 20:31
37F:推 LaPass:就smarty那些東西啊.... 01/01 22:02
38F:→ LaPass:還有,妳可以考慮使用MVC,不過不管切的再怎麼乾淨,還是會 01/01 22:04
39F:→ LaPass:有html跟後端程式碼混在一起的片段在,只是規模大不大、有 01/01 22:04
40F:→ LaPass:沒有把討厭的東西收到看不見的地方去而已 01/01 22:05
41F:→ MOONRAKER:這沒什麼啊 過度的潔癖是不衛生的 01/01 22:29
42F:→ MOONRAKER:如果潔癖到一點php code都不想在看板裡看到 那就ajax囉 01/01 22:30
43F:推 DongFeng:感謝樓上兩位. 推過度的潔癖是不衛生的XDD 01/01 22:41
44F:→ MOONRAKER::) 至少就我接觸到的習慣,與其把全部code都費勁藏起來 01/01 23:43
45F:→ MOONRAKER:不如把他收拾乾淨、整理好,讓前端也能看懂剩下的部份 01/01 23:44
46F:推 LaPass:用ajax的話會變成js跟html混在一起,某種程度只是把髒的地 01/02 00:29
47F:→ LaPass:方推到前端去而已.... 01/02 00:29
48F:→ mmis1000:反正js也能全部封裝進lib再調用阿,只要看不到就沒差 01/02 01:24
49F:→ MOONRAKER:如果用backbone.js那種新兵器,好像就可以在前端達成MVC 01/02 11:44
50F:→ MOONRAKER:並且code和HTML完全分離!? 01/02 11:44







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

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP