传统意义上的胖客户端是对PC上应用的概括,在以往的岁月由于PC机性能远不如现在,而且大量的技术和商业的支持,使得它一直成为开发的主流,然而随着计算机硬件本身的发展,个人计算机在大多数的时候资源利用率都是相当地“奢侈”。如今,随着html5的出现和各大厂商对其的广泛支持,再加上JS的运用,特别是05年那篇有关Ajax技术的论文的出现,使得胖客户端有了新的定义,下面就是我自己对胖客户端的定义。
传统的web开发,将页面的生成相关的所有全部放在的server端,浏览器仅仅是接受html代码,然后展示,于是针对于此便出现了大量的框架和相应的模式来支持这样的架构(接下来的话有可能有点偏颇,由于我本人并没有相应的web开发经验,由于项目的需要才涉及了这个领域,正在学习相关的知识,这篇文章只是我的一点观点和看法),但是,我对此却有点不太舒服,很大的原因就是我学习jsp的时候,觉得jsp就是个不伦不类的技术,首先是提供了一系列奇怪的标签,然后还有一种叫着bean的概念,最关键的是,我一开始学习的并不是servlet/jsp,而是前端那一块,jsp这么一写,我确实有点难以接受是如此的写法,于是大概有1个多月我都不愿一再去看jsp这个技术,相反,我想过一些办法让前端开发和后端开发彻底地分离,因为,前端的编写是十分复杂,和后台的处理也有本质上的差别,所以前端后端分离是一件十分美妙的事情,也看了一些相关的体系架构来解决这个问题(由于初学,都还在基础知识阶段,所以对java中广为赞扬的ssh并没有学习,如果这些框架解决了这个问题,我会十分的欣慰),但是都还是没有彻底的分离,始终都会有相应的联系,但是前几天我学习js终于有点进度了,看到了Ajax技术,虽然我以前听过它,但是却一直不知到,也以为是十分高深的技术,而看完相关的介绍,写完几个test后,仅仅是介绍和test就让我热血沸腾了,我始终有一种说不出的感觉,就好象自己第一次做化学实验,感觉看到新的事物,新的大陆。
上面就是一些废话了,接下来就进入正题。
现在计算机本身已经有十分强大的计算性能,而且家用计算机大多数的时候都是处于低利用率状态,而web的优势之一就是更新容易,且跨平台,但是目前的大多数web开发都是依照传统的web开发技术,即基本上所有的任务都由服务器解决,对服务器性能的要求随着web越来越复杂逐渐变高,为什么我们不将更多的计算放在客户端?web服务器要做的事情就是提供接口,传递数据。这里的数据并不是html页面,而是纯数据。
对于前面的前端后台分离,为什么不将页面的创建放在客户端?js从服务器读数据,然后自己来创建页面,当然这个数据不仅仅是用户需要的数据,还有css和html页面的基本框架,也就是说,MVC中的V和C放在了客户端,这样服务器就可以对任何遵守该接口的请求进行回复,所以不同的平台的native应用就可以请求该服务器,也就不用区分请求到底是browser还是native应用,服务器就是提供数据,如果是browser,也许还会利用ajax技术请求相关的css和html数据。
当然,以上仅仅是我个人的一点点看法,由于是今天上午才在图书馆想到,所以有许多的漏洞和而且关的话题并没有详细的阐述,以后参考了详细的资料和想出了一套完整的方案再详细解释吧,不过我也想将我的这个想法实践到我们所需要做的这个项目之中,所不定到时候会演绎出一套新的web开发模式,希望如此,可能早就有人有如此的想法,而且已经十分的成熟,在此,见笑。