Web_Design 板


LINE

※ 引述《xxzrainy (rainy)》之铭言: : 各位前辈好,小弟目前自学网页半年,若用语有任何不当还请海涵并指正。 : 最近在练习如何做出一个评论/QA常见问题的区块。 : 如果是少量的评论,直接替换HTML标签里的文字就好。 : 主要是想请教,是什麽样的技术可以一直动态生成数以百计的评论呢? : 以我半年的学习角度会让我联想到word里面的合并寄件功能,不知道两者有无联系。 : 恳请各位前辈指点迷津了,谢谢。 我尝试用比较简略的方式解释一些基本的概念,因此有些细节并不是真正 运作的情况,等到你更进阶的时候,再去理解细节吧 先简略地解释开网页的时候,Client 跟 Server 的关系 此时 Client 就是你的浏览器 Browser,Server 可能是 gmail 或是内容农场 所谓「开网页」最简略的讲法就是「用浏览器下载一个档案,再显示该档案」 有点像是你从别颗硬碟(server)透过 USB 线(网路)拷贝(下载)图片(html档) 然後用看图程式(Browser)打开该档案 Browser --- REQUEST --> Server Browser <-- Response(html) --- Server (中间还有一些 HTTP header 之类的细节就暂时不管它) Browser 收到 html 之後会发现「喔!我看得懂这一堆乱七八糟的英文字耶!」 同样的 html 档案,用文字编辑器打开来,会看到 <body background="red"> 等等之类的英文字;用 Browser 的话,它会用比较特别的方式去解读这串文字 譬如说把画面上的背景填上红色,或着在最上方用黑色超大粗体填上 PTT 几个字 这个「把 html 档案画成人眼看到的样子」就叫 render (render 的意义很广,譬如说 server side rendering 就不同於此,先不管它) User ---操作---> Browser ---Request---> Server User <--render-- Browser <--Response--- Server 回到你一开始的问题 > 什麽样的技术可以一直动态生成数以百计的评论呢? 有几个地方可以达成这件事情 1. Generate server response 既然 server 是回传一个 html 档给 client,我们可以在回传的内容上面做手脚 譬如原本要回传 <div> <div> 5/1 的天气很好</div> </div> 可以用程式去生出 10 个类似的文字与日期,让 server 回传 <div> <div> 5/1 的天气很好 </div> <div> 5/21 的天气不好 </div> .... <div> 5/41 的天气很好 </div> // bug! </div> 至於怎麽产生,取决於你怎麽实作 server。就是推文内乡亲说的 asp php..etc 除了在 server 端捞资料库,配合自己写演算法产生内容之外,还可以做一些事 譬如跑去接 ChatGPT,产生更多像人类的回应,使得内容农场(误)看起来更有人气 2. Client generate rendering result 以前的 Browser 比较单纯,真的只是单纯地显示 html 的内容。但是 JS 相关技术 进步之後,开启了这几年的大前端时代。现在 Server 回传的 html 档常会夹带一些 JS code,让 Browser render page 的同时也执行该 js script 这些 JS script 可以送 request 给其他 server,也能替换 render 的内容,譬如 按下 F12,在 cosole 里面恶搞自己的页面 document.getElementsByTagName('body')[0].innerText = "XD" 既然有了这招,那也能替换页面里面的内容,配合你写的逻辑去更改评论 当然也可以去接 ChatGPT 动态修改显示的内容。所以推文另有乡亲提到 AJAX, JS 通常会把 1 说成在 server side 做这件事,会把 2 说成在 client side 做 再拿前面的硬碟拷贝来比喻。1 就是你有颗神奇硬碟,根据你的兴趣传回不同的图片 2 则是这颗神奇硬碟总是传回相同的图片,但是会另外传个 plug-in,让你的看图 程式执行这个 plug-in 去修改图片 因为你的提问,字面上看起来是在最末端的 User 看到的内容,所以两种方向皆可 但是实务上来说,在 Server side 做会比较合理。直接在 server side 生出一堆 假评论,存进资料库里面。每次有人打开该文章就直接进资料库捞。这样每个开该 页面的人都会看到同样的东西,Server 负担也比较小 (用资料库的硬碟空间换 CPU 执行时间) 该页面可能一开始只显示 20 则评论,等到 User 点下「请长官再多训勉几句」之时 才透过 JS 去跟 server 多捞一点资料,动态更新页面上的部分内容 这就是另一位乡亲提到的 AJAX 详细用法 随着你更深入地探索,未来的问题可能会更复杂,解法可能会更....多采多姿? 或许提示你的开发环境(ie: 用哪些前端、後端 framework),乡亲们可以更容易 推测你遇到的困难点在哪里,帮忙减少一些冤枉路 -- 有一天小明跟朋友打牌,有张牌不小心掉进水里。此时女神出现了 女神:「你掉的是这张红中,还是这张白板?」 小明:「都不是,我掉的是青发。快还我吧大婶,我缺那张就听牌了」 女神:「.................(不爽)」 「你真是诚实的好孩子,红中跟白板都送你吧」 於是小明就相公了。 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.233.253.80 (日本)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1686989845.A.68B.html
1F:推 nottt: 难得的长文推一下,虽然原po不知道还会不会回来看 06/17 22:37
2F:推 kyoe: 认真 06/19 11:41
3F:推 xxzrainy: 我是原po 没想到竟然能够被这麽认真的回文 目前正在积 07/17 19:21
4F:→ xxzrainy: 极学习中 网页的技术让我感觉到学海无涯 07/17 19:21
5F:推 xxzrainy: 目前使用的开发环境也不过是用vsCode写写自己有兴趣的程 07/17 19:23
6F:→ xxzrainy: 式码 实在是还有很长一段路要走XD 07/17 19:23
7F:→ WalkingIce: 加油! 07/24 07:11







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

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

TOP