首頁  >  文章  >  後端開發  >  web页面渲染是采用php渲染好,还是采用ajax方式渲染好?

web页面渲染是采用php渲染好,还是采用ajax方式渲染好?

WBOY
WBOY原創
2016-06-17 08:32:321835瀏覽

现在公司的管理后台页面基本上ajax来渲染页面,把js禁用掉整个页面就废了,页面的接口太多,比方一个分页功能都是js全部渲染出来的,我觉得php与ajax 混合使用是最好的, 各位大牛提提意见呗。

回复内容:

1、到今天,几乎没人会禁掉js。
2、php生成全部代码,肯定比只生成框架,然后ajax要快。原因是,两种情况下,你的网线传输的数据K数基本是一样的,如果js执行innerHTML的话,会修改dom,造成重绘和重排,代价比较大。即使php只负责框子,但一般php项目都是使用了模板引擎的,即使提供框子也需要动用模板引擎,那么模板引擎处理框子和处理全部内容,是几乎感觉不出时间区别的。如果数据量大,那么ajax的优势是可以分段下载数据,这样就显得比php快。
3、忽略php比ajax快这种情况,它们的区别就是看使用场合,而且没有必须的规则,所以不要太较真。
ajax永远是跟“安全”的“频繁更新”的“格式的批量数据”以及“数据缓存”相关,而且用户没有欲望看旧的数据,也就是说,用户没兴趣、没必要点后退键,看老数据。因为ajax默认不支持后退键,如果想实现后退,需要做大量的工作。
也就是说:
A、如果抓的数据是敏感的,那么不要ajax,不敏感的话就可以ajax。如果抓的不是格式的批量数据,而是别的东西,比如抓了一条视频地址,即然只有一条,没必要ajax。如果预判用户会查阅大量的数据,那么用ajax先抓一批数据(或者首批数据用php输出),然后后台慢慢悠悠的再继续抓其他数据,然后缓存起来,这时候用ajax。
B、如果你的页面呈现完毕之后处于数据静止状态(不进行数据频繁更新),那就肯定是用php。(如果页面显示了当天日期,昨天是15日,今天是16日,也认为是数据静止。如果在某个位置显示了你的用户名,也认为是数据静止。)
C、如果你的页面呈现完毕之后不处于数据静止状态,也就是说在你观看页面的几十秒期间内,服务器数据库就有了大批量的数据更新,而且你有必要马上看到这些更新,那么就用ajax。或者说你的页面打开之后可能需要保持半小时、一小时不关闭,而且要随时看到数据更新,那肯定要用ajax。
从上述我的理论来讲,笼统说,你的公司内部网站,大量利用php,加上一丢丢的ajax,就对了。
关于分页,有人说用ajax来获取分页信息,岂不是美哉?这里道理其实是一样的,列表可以视为格式的批量数据,而且缓存有利于翻页,所以可以ajax。但是有可能列表页更新很慢,几天几周才新增一条,那又可以考虑php。所以这次就看情况而定。
如果一个网页展示了不算多的三四十条批量数据,今天是这些数据,明天仍是这些数据,没变过,这时候尽管符合“格式的批量数据”,但也推荐php,不推荐ajax。所以我才说,公司内网,可以大量用php。

对于php生成了html的情况,那就跟php无关了,如果一个html页面内的数据总要更新,当然ajax,没疑问。 公司这么做是有原因的 以后做 手机端 ios android 后台不用变 不用做兼容 现在这几个回答的都不知道是什么鬼…
题主说了是管理系统啊,很明显就是内部使用的。
这种应用特点就是交互暴多,访问速度并不重要,开发投入资源偏少。这种情况下用偏前端的架构(angular,vue,react……),很明显在这个场景下,这就是最优解,这样开发效率更高,维护更舒服

如果这种应用用php直出吐页面,再加jquery,jquerytable什么的做交互。维护起来你会想死的,不说别的,新增一个管理面板就得赫呲赫呲的写成百上千行的js 用ajax渲染页面,我这边称为是云端结构的web架构。因为现在做移动端开发的项目占了主要市场(如微信微网站开发),不用考虑SEO的情况下,云端结构要比混合渲染要好。这个好主要源于软件工程开发要点的三个方面:灵活性、拓展性和重用性。
1、重用性。如果是用混合渲染,前端很少使用框架,使用也只是类似bootstrap这样的CSS框架,难以构建JS的底层架构。这样就极大的限制了前端的重用性。
2、灵活性。云端结构的开发,前端技术员可以完全独立出来构建页面,后端技术员只需要按照需求提供必要的接口就可以了。
3、扩展性。构建好一个好的前端底层,迭代新功能新页面非常方便。 如果你只是一个简单的页面,PHP直接来比较简单。但有一种情况:页面内容较多的长页面;并发量较大。
那么,PHP渲染结构,ajax渲染细节,就体现出威力了。这样可以更快地响应客户端(服务器处理的逻辑少了),用户能更快地看到东西,而不是浏览器转圈圈。
之后的ajax,也只是数据传递,渲染结构还是在浏览器,服务器少了很多字符串的操作,必然比一次性在服务端渲染要好。
更甚至说,你可以把每个区域的请求分发到不同的业务系统,做好跨域就行了。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn