PTT推薦

[請益] 在js script裡面插php json_encod

看板Soft_Job標題[請益] 在js script裡面插php json_encod作者
zxc8899546
(183帥哥)
時間推噓18 推:18 噓:0 →:46

前些日子我在做某公司的測驗,整個測驗內有一個頁面,是單純顯示今日星座運勢。

我的做法是,後端的收到請求後撈出資料,接著再用json_encode的方式放在script block內,因為頁面上是能切換星座來顯示運勢,所以我想用變數存起來。

fortune: JSON.parse('<?php echo json_encode($fortune); ?>')

但最後對方給的測驗結果是不適合,feeback是「在js script裡面插php json_encod」

請問這種做法是會造成什麼問題嗎?

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.130.131.187 (臺灣)
PTT 網址

chan1509/10 16:03你都已經是在該頁寫義大利麵了,幹麻 encode 再 parse..

knives09/10 16:07ok阿,要挖坑給別人,這樣最好

zxc889954609/10 16:46真的想知道什麼是正確做法,不是想挖坑

Boston09/10 17:18沒有所謂的正確做法.... 你這樣做也可以的

kangan98709/10 17:18該頁面是php頁面吧? 是的話判斷完星座你直接echo 資

kangan98709/10 17:18料就可以了吧..?

Boston09/10 17:19比較「現代」的做法會是 fortune: JSON.parse(ajaxCall())

Boston09/10 17:19透過 ajaxCall() 來從後端 fetch data

zxc889954609/10 17:31但我傾向做一次request就好了,所以我是用這樣的方式

zxc889954609/10 17:31把需要的資料放到前端

Boston09/10 17:36並沒標準答案,可能該團隊重視 MVC

tsao121109/10 18:02如果這頁面內是整個由後端給出來而不是SPA,沒道理不能這

tsao121109/10 18:02樣用,頂多優化成Jason encode的字串先用變數存起來,js

tsao121109/10 18:02這邊直接echo字串即可

alihue09/10 18:04其實他們用 C# 。開玩笑的,基本上前後端分離還是建議用

alihue09/10 18:04js 來趴

tsao121109/10 18:05因為有些作法是傾向view頁面盡可能少邏輯和運算

mackliu09/10 19:39問題不在於造成什麼問題,而是寫程式的風格,你的團隊應該

mackliu09/10 19:40去溝通一個大家都遵守的風格或開發模式出來

NewSpec09/10 20:54寫得很創意呀,適合轉行做UI/UX

ssccg09/10 21:44為什麼要json_encode再JSON.parse? 直接輸出JS不就好了

ssccg09/10 21:49用了json_encode塞在''中間,還要考慮escape '

lturtsamuel09/10 22:05可以的 你如果上了跟我說一下 我好避開

INFJ09/10 22:57沒問題,php一行能搞定,用ajax反而更多行程式碼,還要考慮

INFJ09/10 22:57異步。簡單的東西就用簡單的做法解決

MacPerson09/10 23:05這些發很怪......

MacPerson09/10 23:05寫法

lazarus112109/10 23:13跟在後端看到一堆角括號一樣美

Geison09/11 00:09看應徵什麼吧 前端?後端?php工程師?

Geison09/11 00:11應徵前端這樣寫 不太符合潮流

Rinorune09/11 00:19fortune = fortune || getFortune()

Rinorune09/11 00:25上面是純前端的一種做法 前後端分離 比較好維護

Hevak09/11 01:26JSON 在舊一點的 JS 引擎不一定合 JS 語法,要有實作 ES201

Hevak09/11 01:269 JSON superset 的環境才有辦法完全支援,這個算是直接把

Hevak09/11 01:27JSON 丟到 code 裡面要考慮的地方

Hevak09/11 01:38然後就算你有用單引號包起字串,也要注意輸出的 JSON 有沒

Hevak09/11 01:39有正確 escape 掉,可以注意一下像是 json_encode 有一些選

Hevak09/11 01:39項可以處理這些問題,可以拿像是「XSS JSON_HEX_TAG」之類

Hevak09/11 01:39的關鍵字去查一下別人怎麼避免這些安全風險

bakedgrass09/11 02:50謝謝分享。不過也提醒一下PTT有AJAX板

superpai09/11 07:18這樣做法的問題是對js來說fortune會是一個全域變數,增

superpai09/11 07:18加維護的困難。但是這不算是技術問題就是了。

realbout09/11 10:36不太喜歡這種寫法...

erspicu09/11 10:44不要有啥特殊問題狀況 都OK 風格問題 每個人有自己的毛

erspicu09/11 10:45真的有遇到特殊狀況撞牆再改就是

zxc889954609/11 12:52了解了,謝謝大家許多意見

leveger090309/11 18:48我在公司的專案也會這樣做

leveger090309/11 18:49但老實說這樣寫以後其他人接手會不好維護

sniper282409/11 19:20不好維護應該可以寫註解吧o_O

zexon9709/11 21:37群X齁

zxc889954609/12 09:06想解釋一下,這是後端職缺的測驗,題目是實作laravel

zxc889954609/12 09:06 auth&每小時爬蟲星座資訊存起來。這頁是我雞婆做的,

zxc889954609/12 09:06想說登入可以順便看資料而已,但他們針對這頁的做法

zxc889954609/12 09:06來reject,因此我才好奇這個做法會造成什麼大問題嗎?

kurtsgm09/12 10:18我覺得沒啥大問題 頂多是沒有前後分離得很乾淨而已吧

taikobo09/12 12:01求職這件事本來就很看緣分,這不一定是被拒絕的真正理由

superpandal09/12 18:10你括號裡面又不是json 根本不合需求

superpandal09/12 18:11這感覺是在亂做

superpandal09/12 18:13所以是用php直接生出js代碼... 搞錯 一樣是爛做法就

superpandal09/12 18:13是了

superpandal09/12 18:16應該只有老系統會這樣寫 前後端分不開了

superpandal09/12 18:22這還有個致命的地方 如果東西是敏感訊息會很危險

s86117510/20 10:26這是間好公司 正確的篩掉不適合的人

tsao121111/29 08:03徵後端工程師 結果用js來刪人 這公司好在哪裡?