html - 为什么不让浏览器能够直接跑PHP?而只有Javascript
巴扎黑
巴扎黑 2017-04-11 11:14:38
[JavaScript讨论组]

为什么现在的浏览器只能跑JavaScript而不是其他的脚本语言比如PHP呢?

我觉得不管是用什么语言做后端,只要是想更新内容就得用Ajax,这东西写一两个还可以,
如果需求要写几十个,并且每一个都要正确地渲染真的好麻烦,用js库需要修改的时候,而且读别人写的JS真的觉得好累
这个东西5年前到现在都没有任何变化,

我一直在想为啥浏览器不能就像PHP get_file_contens()那样直接获取远端数据呢?一行代码就搞定了,
或许PHP才是一个比较适合做浏览器的内置脚本语言。
所以,我想象了一个能支持PHP脚本的浏览器,就是内置了一种经过修改的PHP解释器的浏览器
将PHP开始和结束标签为:,来运行web中PHP前端脚本的内容:(标签中间的内容还是正常的由后端先执行)

举个粟子:

index.php:


DOM->element->p; $id =& $browser->DOM->all_id; listener::match($id['username'][innerText],'admin'){ $id['message'][innerText] = 'Hello, administrator';} ?!>
simple_form_select_backend.php:

如果我们以后写网站能这样写的话简直爽爆了有木有?!用file_get_contents()直接从服务器取出文本(数组数据),然后反序列化就可以用了,只需两行代码!!当然还可使用任何其他从服务器交互数据的办法,甚至进行加密,因为你写就是PHP代码呀~~只需当成两个PHP环境之间来交互数据(那么可以使用任何方法,比如get,post,socket等等)。当数据传到前端后,使用在浏览器上的PHP dom parse engine将内容直接放在你想要的位置上。

要不然你就想象一下用JS写一个能监听表单里的内容并输出内容到某个id里,而且下面的下拉框里的内容时用Ajax从服务器获取的,要写多少行代码。。

我真的好想找一个这样的浏览器。。没有人能告诉我的话那我就自己写一个浏览器好了,写了一个计划文档在这:http://blog.getexampapers.com...
有人有建议或者能够指导的记得叫我~~

巴扎黑
巴扎黑

全部回复(10)
天蓬老师
js能成为浏览器的唯一语言自然有自身的努力,当然还要考虑历史的进程。
说白了,浏览器的公司还是得看利益的。。
PHP中文网

所以这是后端程序员的反击么?
当年NodeJS杀入服务端的仇还记着是吧……

不过要是题主顺便用php造了webpack,react,vue等等的轮子,我还是很看好你的....

大家讲道理

首先楼主的构想是可实现的,浏览器内置一个php解释器,只需用php实现一些浏览器的宿主api。客户端世界有自己的法则,首先脚本和资源要从远程获取,这不难,把原来直接从磁盘读文件改为先经过网络获取远程磁盘的文件;然后是脚本本身不能搞多线程,因为多个线程都去修改ui的话很容易造成混乱,因此一些耗时的操作不能做成同步,因为线程还需要响应用户操作什么的,不能耗在这,这也不怕,php有协程来帮忙做异步;想直接操作数据库?不要冒这个险,客户端世界谁也不能相信,要能做js的轮子大军早就做了,不过可以参考pouchdb的做法在服务器转发一下,也不必把链接字符串暴露在客户端了。

楼主说的php前端模板语法很赞,只是get_file_contents在这里并不适用,因为它不能马上返回数据,用户也就不会马上看到渲染出来的选项,这期间还不能做其他事情。怎么办?参考js的做法。

迷茫

我觉得对比php, JS在前端开发有这几个优势:

  • 异步编程

  • 先发优势

其中异步编程是JS的核心优势,效率高. 以题主的代码来举例:
file_get_contents在网络不佳的情况下,会阻塞很长的时间,所以在这方面其实是不如JS的。

先发优势更不用多说,关于JS的轮子遍地开花.

当然,我觉得题主还是很有想法的,至少我就从来没想过这个问题,我还是建议题主大胆尝试的。

天蓬老师

看了题主的要求现在的mvvm的模式就很符合。
把大量的dom操作简化几乎所有的操作都放到前端只有需要的数据通过api获取。
然后题主要有那么多闲情搞php替代javascript就去吧,希望不要是像typescript一样的只是转换版。
最后还是javascript……
然后题主能让所有浏览器都搞上吗。。想了一下三大浏览器感觉gg。
最后题主你提出了一个想法,快去做吧。

巴扎黑

因为php还不够流行呗, 除非前端人员大部分都会php, 否则没人愿意去学一门新的语言来解决一个已经很好解决的问题

怪我咯

这问题很无语O__O "...

怪我咯

记得在哪里看到个国外有这样一个开源项目,建议题主折腾一个,题主加油,就跟我看到这个帖子一样

用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言

大家讲道理

js的诞生之初只是为了实现浏览器一些简单的操作,比如提醒用户某个输入框的值是否需要填写,当初的网速很慢,流量很贵,如果通过服务端去检验成本太高。
在浏览器上为了检验一个输入框引入php这类当时看起来很重型的语言,并不是很符合要求,终于,一个非常简单的简单轻量的语言js就诞生了。
js现在的很多强大的功能都是经过了十几二十年的发展才变成这样的。

高洛峰

JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下JS将会一统天下

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号