用纯js就可以写一个网页!为啥还要用html和css,为啥不把html及css舍去??有这发展

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用纯js就可以写一个网页!为啥还要用html和css,为啥不把html及css舍去??有这发展相关的知识,希望对你有一定的参考价值。

很多学生在学习JS的时候都有这个疑问,为什么不抛弃css它们直接用JavaScript开发呢?
首先要确定,即使抛开游戏不论,一般的Web应用或者网站,完全用JavaScript开发也是可行的。比如ExtJS、webOS的Enyo等。但是主流Web开发很少采用全JS的方案。原因大体有以下几点:
1. 注重考虑那些无法运行JS的用户代理。
用户使用不支持JS的浏览器(比如较老的手机浏览器),或者禁用脚本。当然你可以选择忽略这一小撮用户,尤其是现在绝大多数网站和应用也是如此选择的,但是至少我们应该对坚持考虑无JS情况的开发者予以基本的尊重。此外,如 Mobile Transcoder或某些手机浏览器的“极速模式”是基于服务器端对网页的解析和重组,是否能支持JS很够呛。
更重要的因素是SEO friendly。如果是全JS生成的网页,搜索引擎无法索引内容。这一点对于许多网站是性命攸关的。
2. 注重HTML/CSS本身的优点。
诚然JS本身也可以通过精心设计的框架和库来实现分离等所有HTML/CSS模型的优点。但是存在许多不确定因素:
1) 有足够好的框架和库吗?
2) 框架和库给出的抽象模型和HTML/CSS模型的阻抗是否匹配?
3.注重性能。
最终Web应用、页面是在浏览器中执行,而浏览器完全是按照HTML/CSS所设计。抛开Canvas不论,纯JS的实现最终还是要生成DOM。从性能的角度看,纯JS生成DOM自然赶不上直接的markup。同样的道理,就算用CSS预处理器也都会在部署时预先编译——尽管在运行时可以做出更牛逼的特性(然而实际上目前我不知道有任何CSS预处理器干了这样的事情——因为它们都是按照预编译的场景设计的),再如HTML/CSS是按照渐进显示优化的(页面不用全下载完就可以看部分),而纯JS的架构没有精心设计是很难做到的(比如json数据全部下载完你才能parse,数据才可用,DOM才能生成)。
现在想要学习Web前端,好的专业培训机构也很多的。例如北大青鸟、南京课工场、南京中博软件学院等等,你可以试听一下课程参考一下。
参考技术A HTML、CSS、JS是网页最基础的三要素,一个网页中可以没有JS,可以没有CSS,但不能没有HTML,因为浏览器的工作原理基于HTML的,你说的用纯JS写一个网页,难道不输出任何HTML标签?追问

当然不用标签可以写一个网页

这样为什么不行?为什么不走这一步

追答

不用任何HTML标签能写一个“网页”?如果光是“写”出来不用显示出来的话我用Word也行,即使你真的用JS写了出来,但没有渲染成HTML根本不可能在浏览器中呈现出来,浏览器渲染页面依赖DOM结构,你连HTML都没有何来DOM?

为啥不直接使用js与后台交互,而使用jsp等技术?

现在假如想做个网站,我们可能会使用asp,jsp与php,现在就说jsp,在html页面中加入java代码,从而实现与用户的动态交互功能.我想问的是,为什么不直接使用JavaScript与后台进行交互呢?而是只将js用于网页前端开发中.如果说JavaScript也可以和jsp一样,直接与后台交流,那不是省很多的事情吗?(听说后来有了个nodejs,是不是可以解决这个问题?)

前端与后台是两个不同的运行环境,所要面对和处理的问题是完全不同的,比如前端脚本主要是用来处理页面与浏览者之间的交互的,而后台脚本则是根据前端的要求读取数据库并返回数据给前端,如果一种程序语言既要兼顾前端又要兼顾后台,那么它必然会很臃肿,会影响运行效率。nodejs虽然使用的语法是JavaScript,但它本质上与前端的JavaScript还是不同的,它其实跟asp、jsp、php一样是运行在服务器的(浏览器查看源代码是看不到nodejs代码的),只不过语法是js而已。
退一万步讲,即使JavaScript能实现前后端统一,在实际应用中它仍然要分为泾渭分明的前端和后台两部分,服务器会首先执行后台部分的代码,然后把前端代码(包含html+css+前端js)发送给客户端浏览器,浏览器在渲染页面效果的同时解析执行前端js。这样的话,前后端都用js与前后端用不同的语言或系统又有什么本质区别呢?更何况实际开发中前端和后台是由不同的人(或团队)来进行的,这种情况下又怎么能强求两者的一致呢?
再一个就是安全问题,如果前端js可以直接操作后台,那么很多后台的秘密(不单单是密码)就会直接暴露在全世界所有人的眼皮下,这是一件很恐怖的事,堪比世界末日!追问

那为什么浏览器端语言要设置成能看见的呢

参考技术A 后台就是操作数据库,js也可以连接并操作数据库,但是因为密码是可以看见的,所以不能这么做,当然如果都是内部员工之类很信任的人使用,可以这么做,因为你是用js直接连数据库,所以真的使用的时候,你只要给用的人发一个html文件就可以了

以上是关于用纯js就可以写一个网页!为啥还要用html和css,为啥不把html及css舍去??有这发展的主要内容,如果未能解决你的问题,请参考以下文章

装上apache为啥还要装PHP

为啥 Web 前端开发不抛弃 HTML 和 CSS,用纯 JavaScript 开发

再见HTML ! 用纯Python就能写一个漂亮的网页

(转载)使用Slip.js快速创建整屏滑动的手机网页

面试官:请用纯 JS 实现,将 HTML 网页转换为图像

NodeJS啥都能做,为啥还要JAVA