目录
回复内容:
简单的说,通过数据接口(比如:ajax请求)将前后端分离。
反面案例
正面案例
设计思路:
前后端分离优点
首页 后端开发 php教程 javascript - 跪求大神: 前后端如何配合最好

javascript - 跪求大神: 前后端如何配合最好

Aug 04, 2016 am 09:20 AM
html java javascript node.js php

产出动态有数据的php,jsp页面,前端与后端的打包发布完全独立。
这种的好处是前端层的表现,数据完全由前端把控,
有什么问题可以由前端独立解决,并单独打包发布。

前端与后端的打包发布完全独立。这局话的意思和理解

回复内容:

产出动态有数据的php,jsp页面,前端与后端的打包发布完全独立。
这种的好处是前端层的表现,数据完全由前端把控,
有什么问题可以由前端独立解决,并单独打包发布。

前端与后端的打包发布完全独立。这局话的意思和理解

前后端分离,前端工程化,前端与后端交互全部通过api,你或许觉得这样对seo不好,但是现在有nodejs,这样的话页面渲染可以交给前端去做,实际上这也是趋势,后端应该去关心系统可用性,性能等问题,不应该关注页面问题,这部分应该交给前端去做

这篇博客应该可以帮到你Web前后端分离开发思路 by livoras

首先得确定通讯协议以及通讯参数。
前端独立作业可以使用mock等工具模拟后台数据传输。
后端设计使用数据模型完成业务,生成接口。
个人认为就是类似于把php中的模版引擎等视图业务从项目中剥离出来形成独立的前端版本?

前后端通过 API 交互。不论使用 web 前端,还是 ios 安卓客户端,都可以。

后端尽量使用相同的API满足前端多个页面甚至不同前端的需求,这才是最好的。前端需要知道后端返回了什么数据,根据设计图应该如何渲染出来就可以了。

我前阵子写了篇前端用ionic、cordova 后端用CoreThink开发非原生APP的步骤http://www.oschina.net/question/2598464_2151690?fromerr=mCRfZH2m你可以看看

简单的说,通过数据接口(比如:ajax请求)将前后端分离。

反面案例

去年接手了一个半成型web项目:后台php语言开发的。不看代码不知道,一看代码,我晕了。代码基本如下:

    <?php
    ...
    echo val;
    ?>
    <html>
    <?php echo ...?>
    </html>
登录后复制

整个php文件中包含着html的味道。细节不多说了,你们应该懂得。除了css文件外,我吐了。深深的伤了强迫症的心。语言还可以这么使用。我再次觉得我选择错了道路。本以为代码的世界可以规整一些,看来我错了。
后来想了想,这样开发的,可能是一个人把前后端都囊括了,也够辛苦的。不过,这样混合开发的模式,还真有一个优点,成本少,效率高。缺点一大堆,扩展和后期维护都成问题。

正面案例

还是去年,同样接手一个web项目。主要需求:显示后台数据库表中的内容,说白了,就是模仿mysql的web控制。不过是简单的。但是有要求:模型化,即后台通过修改少量的参数,就可以控制前端显示的表的个数,甚至表的列名。也就说,前端有关表的一切信息都是由后端提供。前端只要根据后端的数据,对界面做显示性的调整即可。

设计思路:

1.有关表的样式和鼠标对于表格的动态操作,作为前端模块部分;
2.表的表名信息和列表信息由ajax请求服务器返回json,本地对json稍加验证,即可动态创建本地表;
3.数据的获取,同样适用ajax获取。然后填充本地表;
4.本地对于数据的增删改,通通通过ajax上传到服务器;

唯一的磨合点,就在ajax接口上面。开发的时候,由于后端缓慢,有些接口传递到前端的就是直接echo出来的假数据。

前后端分离优点

通过数据接口模式的开发,前后端完全分离,而且这个项目因为是模型化设计,所以代码重用度非常高。
而且,出现问题,通过检测数据接口的数据,很容易知道是前端的问题还是后台的问题。十分的便于维护,甚至深度的二次开发。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
HTML与CSS和JavaScript:比较Web技术 HTML与CSS和JavaScript:比较Web技术 Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

如果session_start()被多次调用会发生什么? 如果session_start()被多次调用会发生什么? Apr 25, 2025 am 12:06 AM

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

作曲家:通过AI的帮助开发PHP 作曲家:通过AI的帮助开发PHP Apr 29, 2025 am 12:27 AM

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

session_start()函数的意义是什么? session_start()函数的意义是什么? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

H5:HTML5的关键改进 H5:HTML5的关键改进 Apr 28, 2025 am 12:26 AM

HTML5带来了五个关键改进:1.语义化标签提升了代码清晰度和SEO效果;2.多媒体支持简化了视频和音频嵌入;3.表单增强简化了验证;4.离线与本地存储提高了用户体验;5.画布与图形功能增强了网页的可视化效果。

如何使用MySQL的函数进行数据处理和计算 如何使用MySQL的函数进行数据处理和计算 Apr 29, 2025 pm 04:21 PM

MySQL函数可用于数据处理和计算。1.基本用法包括字符串处理、日期计算和数学运算。2.高级用法涉及结合多个函数实现复杂操作。3.性能优化需避免在WHERE子句中使用函数,并使用GROUPBY和临时表。

MySQL的字符集和排序规则如何配置 MySQL的字符集和排序规则如何配置 Apr 29, 2025 pm 04:06 PM

在MySQL中配置字符集和排序规则的方法包括:1.设置服务器级别的字符集和排序规则:SETNAMES'utf8';SETCHARACTERSETutf8;SETCOLLATION_CONNECTION='utf8_general_ci';2.创建使用特定字符集和排序规则的数据库:CREATEDATABASEexample_dbCHARACTERSETutf8COLLATEutf8_general_ci;3.创建表时指定字符集和排序规则:CREATETABLEexample_table(idINT

讨论可能需要在Java中编写平台特定代码的情况。 讨论可能需要在Java中编写平台特定代码的情况。 Apr 25, 2025 am 12:22 AM

在Java中编写平台特定代码的原因包括访问特定操作系统功能、与特定硬件交互和优化性能。1)使用JNA或JNI访问Windows注册表;2)通过JNI与Linux特定硬件驱动程序交互;3)通过JNI使用Metal优化macOS上的游戏性能。尽管如此,编写平台特定代码会影响代码的可移植性、增加复杂性、可能带来性能开销和安全风险。

See all articles