[请益] 在js script里面插php json_encod

楼主: zxc8899546 (GC)   2020-09-10 15:59:54
前些日子我在做某公司的测验,整个测验内有一个页面,是单纯显示今日星座运势。
我的做法是,后端的收到请求后捞出资料,接着再用json_encode的方式放在script bloc
k内,因为页面上是能切换星座来显示运势,所以我想用变量存起来。
fortune: JSON.parse('<?php echo json_encode($fortune); ?>')
但最后对方给的测验结果是不适合,feeback是“在js script里面插php json_encod”
请问这种做法是会造成什么问题吗?
作者: erspicu (.)   2020-09-11 10:44:00
不要有啥特殊问题状况 都OK 风格问题 每个人有自己的毛真的有遇到特殊状况撞墙再改就是
作者: realbout (萨摩诃)   2020-09-11 10:36:00
不太喜欢这种写法...
作者: chan15 (ChaN)   2020-09-10 16:03:00
你都已经是在该页写意大利面了,干麻 encode 再 parse..
作者: knives   2020-09-10 16:07:00
ok阿,要挖坑给别人,这样最好
楼主: zxc8899546 (GC)   2020-09-10 16:46:00
真的想知道什么是正确做法,不是想挖坑
作者: Boston (Boston)   2020-09-10 17:18:00
没有所谓的正确做法.... 你这样做也可以的
作者: kangan987 (Jon.Snow)   2020-09-10 17:18:00
该页面是php页面吧? 是的话判断完星座你直接echo 资料就可以了吧..?
作者: Boston (Boston)   2020-09-10 17:19:00
比较“现代”的做法会是 fortune: JSON.parse(ajaxCall())透过 ajaxCall() 来从后端 fetch data
楼主: zxc8899546 (GC)   2020-09-10 17:31:00
但我倾向做一次request就好了,所以我是用这样的方式把需要的资料放到前端
作者: Boston (Boston)   2020-09-10 17:36:00
并没标准答案,可能该团队重视 MVC
作者: tsao1211 (Sunday)   2020-09-10 18:02:00
如果这页面内是整个由后端给出来而不是SPA,没道理不能这样用,顶多优化成Jason encode的字串先用变量存起来,js这边直接echo字串即可
作者: alihue (wanda wanda)   2020-09-10 18:04:00
其实他们用 C# 。开玩笑的,基本上前后端分离还是建议用js 来趴
作者: tsao1211 (Sunday)   2020-09-10 18:05:00
因为有些作法是倾向view页面尽可能少逻辑和运算
作者: mackliu (回不去的大叔)   2020-09-10 19:39:00
问题不在于造成什么问题,而是写程式的风格,你的团队应该去沟通一个大家都遵守的风格或开发模式出来
作者: NewSpec (新规格)   2020-09-10 20:54:00
写得很创意呀,适合转行做UI/UX
作者: ssccg (23)   2020-09-10 21:44:00
为什么要json_encode再JSON.parse? 直接输出JS不就好了用了json_encode塞在''中间,还要考虑escape '
作者: lturtsamuel (港都都教授)   2020-09-10 22:05:00
可以的 你如果上了跟我说一下 我好避开
作者: INFJ   2020-09-10 22:57:00
没问题,php一行能搞定,用ajax反而更多行程式码,还要考虑异步。简单的东西就用简单的做法解决
作者: MacPerson (Gary)   2020-09-10 23:05:00
这些发很怪......写法
作者: lazarus1121 (...)   2020-09-10 23:13:00
跟在后端看到一堆角括号一样美
作者: Geison (Angels)   2020-09-11 00:09:00
看应征什么吧 前端?后端?php工程师?应征前端这样写 不太符合潮流
作者: Rinorune (杜)   2020-09-11 00:19:00
fortune = fortune || getFortune()上面是纯前端的一种做法 前后端分离 比较好维护
作者: Hevak (Arthow Eshes)   2020-09-11 01:26:00
JSON 在旧一点的 JS 引擎不一定合 JS 语法,要有实作 ES2019 JSON superset 的环境才有办法完全支援,这个算是直接把JSON 丢到 code 里面要考虑的地方然后就算你有用单引号包起字串,也要注意输出的 JSON 有没有正确 escape 掉,可以注意一下像是 json_encode 有一些选项可以处理这些问题,可以拿像是“XSS JSON_HEX_TAG”之类的关键字去查一下别人怎么避免这些安全风险
作者: bakedgrass (蒙古烤小草)   2020-09-11 02:50:00
谢谢分享。不过也提醒一下PTT有AJAX板
作者: superpai (超级白)   2020-09-11 07:18:00
这样做法的问题是对js来说fortune会是一个全域变量,增加维护的困难。但是这不算是技术问题就是了。
楼主: zxc8899546 (GC)   2020-09-11 12:52:00
了解了,谢谢大家许多意见
作者: leveger0903 (脆笛酥)   2020-09-11 18:48:00
我在公司的专案也会这样做但老实说这样写以后其他人接手会不好维护
作者: sniper2824 (月夜)   2020-09-11 19:20:00
不好维护应该可以写注解吧o_O
作者: zexon97 (过渡期)   2020-09-11 21:37:00
群X齁
楼主: zxc8899546 (GC)   2020-09-12 09:06:00
想解释一下,这是后端职缺的测验,题目是实作laravelauth&每小时爬虫星座资讯存起来。这页是我鸡婆做的,想说登入可以顺便看资料而已,但他们针对这页的做法来reject,因此我才好奇这个做法会造成什么大问题吗?
作者: kurtsgm   2020-09-12 10:18:00
我觉得没啥大问题 顶多是没有前后分离得很干净而已吧
作者: taikobo (勉强になるなぁ...)   2020-09-12 12:01:00
求职这件事本来就很看缘分,这不一定是被拒绝的真正理由
作者: superpandal   2020-09-12 18:10:00
你括号里面又不是json 根本不合需求这感觉是在乱做所以是用php直接生出js代码... 搞错 一样是烂做法就是了应该只有老系统会这样写 前后端分不开了这还有个致命的地方 如果东西是敏感讯息会很危险
作者: s861175 (s861175)   2020-10-20 10:26:00
这是间好公司 正确的筛掉不适合的人

Links booklink

Contact Us: admin [ a t ] ucptt.com