mvc 和 ajax 的問題..

來源:互聯網
上載者:User
關鍵字 php thinkphp ajax mvc
前一段時間,我學完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編寫的代碼具有更好的可維護性,如:

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;    }}

M 模型,V 視圖,C 控制器
ajax 是在V視圖中請求C控制器 對前後端進行資料互動
都要好好學習。
順便問一下,現在屠宰場也要互連網資訊化了嗎?

我初學時也曾對MVC這個概念相當模糊,但找實習一般都會問:MVC是什麼呀?你怎麼理解MVC呀?
無奈,只能背下來:M是模型model,用於資料處理,V是試圖view,用於展示頁面,C是控制器controller,用於進行邏輯處理。。。
後來工作一段時間之後,才對MVC的應用有一點簡單的認知。
我們寫一個頁面,目的是輸出一句話:'good good study,day day up!',那麼,我們可以建立一個index.php檔案,裡面寫下:

        Document    

這樣,我們的目的就實現了,在這兒,需要所謂的MVC嗎?不需要!
但是,如果我們需要做一個有很多功能的網站,我們怎麼辦呢,也像這樣一個php檔案對應著實現一個網站頁面的所有功能?
這個時候,我們就需要對此進行一個技術上的分離(MVC):
假如有一個頁面:localhost/article/5,這個頁面的作用是展示id為5的文章相關內容,那麼,在C(控制層Controller)中,我們需要實現這個請求的邏輯處理,那麼請求的邏輯是什麼呢:

/*第一步:擷取到文章的id,$id = $_GET['article'];第二步:擷取文章內容,M->get('article',$id);第三步:展示文章內容,show($data)*/

M(模型model)層的作用是資料處理,那麼,我們可以在M層串連資料庫進行一些資料查詢處理,然後在C層調用M層的方法擷取到我們需要的資料,然後展示出來!
V(試圖view)層的作用是展示頁面,我們在C層接收到M層處理好的資料,然後這些資料通過V層的一些方法展示到試圖模板中的指定位置,然後展示到瀏覽器!

這麼看起來,真是麻煩誒!
可是仔細想一想,如果在一個大項目中,沒有合理的結構約束,全是混亂無序的代碼,那麼以後我們怎麼維護?而且一個項目通常是多人合作開發,如果是混亂的代碼結構,那麼怎麼合作?

沒有時間了,先寫這些,將就看看

無論是mvc還是mmvc等等等,這些設計典範最終的目的就是為了減少代碼冗餘度,方便擴充與維護。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.