Heim  >  Artikel  >  Backend-Entwicklung  >  web页面渲染是采用php渲染好,还是采用ajax方式渲染好?

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

WBOY
WBOYOriginal
2016-06-17 08:32:321836Durchsuche

现在公司的管理后台页面基本上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,也只是数据传递,渲染结构还是在浏览器,服务器少了很多字符串的操作,必然比一次性在服务端渲染要好。
更甚至说,你可以把每个区域的请求分发到不同的业务系统,做好跨域就行了。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn