Heim > Backend-Entwicklung > PHP-Tutorial > mvc 和 ajax 的问题..

mvc 和 ajax 的问题..

WBOY
Freigeben: 2016-06-06 20:07:31
Original
955 Leute haben es durchsucht

前一段时间,我学完php,html,mysql,JavaScript 一些基本的东西后,我在这里问 网页 和 php 实现互交,
也就是前台和后台分开写怎么弄.

有人告诉我用 MVC 有人 跟我说用 ajax,

然后就我自学了ajax,然后一般简单的也会弄了..

我昨天看 mvc 的 thinkphp 教程,看了三集教程后,发现其实很多东西,貌似用 ajax 更简单..,而且ajax 可以提交到多个 *.php 文件, 根据客户端的不同动作事件实时反馈结果..

我问问 mvc 还有必须学习吗?他真正的用途在哪里?

希望跟我说说呗,举个实例什么的,我也不在it行业,我在一个屠宰场上班,要是说的太专业术语化,我也看不懂,希望大家言简意骇的,举个例子说说呗..谢谢了!

回复内容:

前一段时间,我学完php,html,mysql,JavaScript 一些基本的东西后,我在这里问 网页 和 php 实现互交,
也就是前台和后台分开写怎么弄.

有人告诉我用 MVC 有人 跟我说用 ajax,

然后就我自学了ajax,然后一般简单的也会弄了..

我昨天看 mvc 的 thinkphp 教程,看了三集教程后,发现其实很多东西,貌似用 ajax 更简单..,而且ajax 可以提交到多个 *.php 文件, 根据客户端的不同动作事件实时反馈结果..

我问问 mvc 还有必须学习吗?他真正的用途在哪里?

希望跟我说说呗,举个实例什么的,我也不在it行业,我在一个屠宰场上班,要是说的太专业术语化,我也看不懂,希望大家言简意骇的,举个例子说说呗..谢谢了!

这两件事其实一点关系都没有,初学者认为MVC是一种架构方式,但实际上我个人认为这是一种思想。我的理解是这样的:
对于任意交互,都可以简化为一个三步走的过程,即
1- 访问者对服务器发起请求,服务器识别该请求是否有效(就像你到传达室说找xxx,传达室可能告诉你没这个人)
2- 对于有效的请求进行处理
3- 将处理结果反馈给访问者
其中 识别请求有效性,如果有效则处理 属于控制器部分,而具体的处理过程 属于模型,最终反馈的结果通常需要更友好的效果,就是V了(所以一种说法是直接返回json就不需要v了,另一种说法是将数据格式化为json也是一种v的应用)
这个思想是符合迭代的,比如对于一个函数来说,函数的命名就是C,处理过程是M,return是V。

理解该思想的好处是什么?
例如SEO优化,是对C的调整,其余不受影响
例如业务逻辑变更,是对M的调整,其余不受影响
例如UI改善,是对V的调整,其余不受影响
结合前面说到的迭代思想,基于广义MVC编写的代码具有更好的可维护性,如:

<code>class User {
    public function save(array $data) {
        $this->_valid($data);
        $id = $this->_save($data);
        return $this->find($id);
    }
    protected function _valid(array $data) {
        //...
    }
    protected function _save(array $data) {
        //...
    }
    public function find(int $id) {
        $data = ...;
        return $this->_formatData($data);
    }
    protected function _formatData(array $data) {
        //...
        return $data;
    }
}</code>
Nach dem Login kopieren

M 模型,V 视图,C 控制器
ajax 是在V视图中请求C控制器 对前后端进行数据交互
都要好好学习。
顺便问一下,现在屠宰场也要互联网信息化了吗?

我初学时也曾对MVC这个概念相当模糊,但找实习一般都会问:MVC是什么呀?你怎么理解MVC呀?
无奈,只能背下来:M是模型model,用于数据处理,V是试图view,用于展示页面,C是控制器controller,用于进行逻辑处理。。。
后来工作一段时间之后,才对MVC的应用有一点简单的认知。
我们写一个页面,目的是输出一句话:'good good study,day day up!',那么,我们可以新建一个index.php文件,里面写下:

<code>


    <meta charset="UTF-8">
    <title>Document</title>


    <h1><?php echo 'good good study,day day up!'; ?></h1>

</code>
Nach dem Login kopieren

这样,我们的目的就实现了,在这儿,需要所谓的MVC么?不需要!
但是,如果我们需要做一个有很多功能的网站,我们怎么办呢,也像这样一个php文件对应着实现一个网站页面的所有功能?
这个时候,我们就需要对此进行一个技术上的分离(MVC):
假如有一个页面:localhost/article/5,这个页面的作用是展示id为5的文章相关内容,那么,在C(控制层Controller)中,我们需要实现这个请求的逻辑处理,那么请求的逻辑是什么呢:

<code>/*
第一步:获取到文章的id,$id = $_GET['article'];
第二步:获取文章内容,M->get('article',$id);
第三步:展示文章内容,show($data)
*/</code>
Nach dem Login kopieren

M(模型model)层的作用是数据处理,那么,我们可以在M层连接数据库进行一些数据查询处理,然后在C层调用M层的方法获取到我们需要的数据,然后展示出来!
V(试图view)层的作用是展示页面,我们在C层接收到M层处理好的数据,然后这些数据通过V层的一些方法展示到试图模板中的指定位置,然后展示到浏览器!

这么看起来,真是麻烦诶!
可是仔细想一想,如果在一个大项目中,没有合理的结构约束,全是混乱无序的代码,那么以后我们怎么维护?而且一个项目通常是多人合作开发,如果是混乱的代码结构,那么怎么合作?

没有时间了,先写这些,将就看看

无论是mvc还是mmvc等等等,这些设计典范最终的目的就是为了减少代码冗余度,方便扩展与维护。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage