做c/s 与 b/s 的思维

做c/s 与 b/s 的思维
曾经有一个同事初次参与c/s项目,问标签和样式在哪里改。。。
只做过b/s 的人可能认为界面都是标签写,只做过c/s的人能以后做网页是不是也是拖拽控制做出来的,当然webform 是这样做的,但很多做webform 的人做了一段时间后都不能明白其实现原理。以上这只是界面上的一些适应问题。

相对编程思想的不同:

做客户端程序没有请求的概念,与进程接触会比较多。全局变量、静态变量会存在至程序结束的整个生命周期内,文件操作相对容易因为都是本地运行。做过c/s的人突然转来做b/s 项目,如果对会话这个概念不能理解清楚那很容易出问题,一个变量定义了由一个会话赋值后,可能会觉得另一个会话还是一样的用。服务器程序的运行模式是服务器监听浏览器请求后开始任务处理返回结果至请求端,全局变量、静态变量存在于这个请求与返回的过程当中,既这些变量是相对这一次请求,下一次请求这些数据将不再存在,如果需要数据保存在服务器端则需要使用 server、application、session等机制,如果是全局性数据则可以使用缓存。

有些人最开始做b/s的时候竟然有直接在js部分去调用 php 或 c# 当中的方法的做法。。。这是完全没有理解程序运行的过程。b/s 程序的处理分服务端与客户端。当客户端请求后服务端通过路由或直接定位至对应控制器和处理程序文件后,通过服务端程序(php/.net)解析服务端标签后得到完整html源码响应至浏览器,浏览器再解析html dom、css、js 后 再从上至下执行js中的方法,js中的方法可能会修改dom中的元素的显示效果得到最终的呈现结果。

做一个bs网页的功能最好能清晰能传入的数据、应该查询的数据、应该缓存的数据及通过逻辑处理后应该更新与展示的数据;网页不同于cs程序,cs整个进程内数据是共享的传数据非常的简单;bs往往只能传入一些比较精简的数据如ID、状态、分类等再通过这些去查询数据库或缓存,查询数据库会影响服务器性能,缓存可以适当缓解数据库的压力,如分类就可以进行缓存处理。

 

发表评论

电子邮件地址不会被公开。