Php 在web开发MVC模式中,在哪里放置繁重的jQuery代码?
我正在建立一个网站,其中许多页面都是非常互动的,没有与web服务器进行任何通信。基本上,页面代表一种DHTML界面,用户可以在其中单击各种div来移动它们并执行其他操作。最后,用户能够在屏幕上保存所有div的“状态”,只有在该状态下,才会将HTTP请求发送到服务器 我尝试使用MVC方法(通过CodeIgniter),这些操作主要由JQuery和我编写的一些自定义JavaScript函数处理。我有很多JavaScript代码,涵盖了逻辑。目前,所有的代码都在CodeIgniter的MVC视图中,但我不知何故觉得这是错误的。我想我应该把一些代码移到某种控制器上,但是用JavaScript代替CI提供的PHP控制器Php 在web开发MVC模式中,在哪里放置繁重的jQuery代码?,php,jquery,codeigniter,model-view-controller,Php,Jquery,Codeigniter,Model View Controller,我正在建立一个网站,其中许多页面都是非常互动的,没有与web服务器进行任何通信。基本上,页面代表一种DHTML界面,用户可以在其中单击各种div来移动它们并执行其他操作。最后,用户能够在屏幕上保存所有div的“状态”,只有在该状态下,才会将HTTP请求发送到服务器 我尝试使用MVC方法(通过CodeIgniter),这些操作主要由JQuery和我编写的一些自定义JavaScript函数处理。我有很多JavaScript代码,涵盖了逻辑。目前,所有的代码都在CodeIgniter的MVC视图中,但
我应该用JavaScript创建某种并行MVC吗?你可以。调查它允许您设置任何类型的结构,而不会干扰CodeIgniter的结构。它设置了一种资产区域,您可以根据需要设置自己的模块。不过,您可能会想到一种不同的分离方式,因为Javascript可能主要处理视图,尤其是在您不使用AJAX的情况下。因此,考虑将JavaScript(La java)打包成单独的文件夹,并进行逻辑分组。然后,使用asset helper,它只是一行简单的PHP命令,告诉您的程序使用您想要的任何东西。您可以。调查它允许您设置任何类型的结构,而不会干扰CodeIgniter的结构。它设置了一种资产区域,您可以根据需要设置自己的模块。不过,您可能会想到一种不同的分离方式,因为Javascript可能主要处理视图,尤其是在您不使用AJAX的情况下。因此,考虑将JavaScript(La java)打包成单独的文件夹,并进行逻辑分组。然后,使用asset helper,它只是一行简单的PHP命令,告诉您的程序使用您想要的任何东西。另外,在JavaScript中实现业务逻辑代码时,您必须注意的另一件事是,您运行的代码在应用程序的信任边界之外运行——也就是说,因为它在每个客户端上运行,从技术上讲,客户端向您发送错误数据是可能的。这可能是一个大问题,特别是如果前端有授权逻辑的话 由于不知道您的代码是什么,我会说您希望将需要高度信任的代码完全从JS中删除。将JS保存为UI sugar。如果这样做,那么在“视图”中包含大量JS代码是完全可以接受的——只要它只涉及到操作客户端表示
但另一方面,我确实看到了如何将此工作视为模型-视图-控制器(客户端)-控制器(服务器)模式。但我认为这没关系…另外,在JavaScript中实现业务逻辑代码时,您必须注意的另一件事是,您运行的代码在应用程序的信任边界之外运行——也就是说,因为它在每个客户机上运行,所以从技术上讲,客户机可能向您发送坏数据。这可能是一个大问题,特别是如果前端有授权逻辑的话 由于不知道您的代码是什么,我会说您希望将需要高度信任的代码完全从JS中删除。将JS保存为UI sugar。如果这样做,那么在“视图”中包含大量JS代码是完全可以接受的——只要它只涉及到操作客户端表示
但另一方面,我确实看到了如何将此工作视为模型-视图-控制器(客户端)-控制器(服务器)模式。但我认为这没关系…如果您最终拥有大量Javascript代码和运行客户端的大部分功能,那么服务器端就帮不上什么忙了。您需要将JQuery和其他JavaScript代码组织得很好。不确定是否存在专门用于JavaScript的MVC框架。我自己在几年前做过一次,当时我不得不使用大量JavaScript来处理这个项目。 然而,您不一定需要进行全面的MVC,只要有简单的模型和逻辑处理程序(控制器)就可以了。
但是,如果您的代码依赖于JavaScript,那么如果您不真正了解如何构建JavaScript软件,这将是一个巨大的错误。如果您最终拥有大量JavaScript代码和运行客户端的大部分功能,服务器端将帮不上什么忙。您需要将JQuery和其他JavaScript代码组织得很好。不确定是否存在专门用于JavaScript的MVC框架。我自己在几年前做过一次,当时我不得不使用大量JavaScript来处理这个项目。 然而,您不一定需要进行全面的MVC,只要有简单的模型和逻辑处理程序(控制器)就可以了。
但是,如果您的代码依赖于JavaScript,那么如果您不真正了解如何构建JavaScript软件,这将是一个巨大的错误。JavaScriptMVC是组织和开发大规模JS应用程序的最佳选择 建筑设计非常实用。使用JavaScript,您将要做四件事:
$.Controller.extend('TodosController',{
'click' : function(el, ev){ ... },
'.delete mouseover': function(el, ev){ ...}
'.drag draginit' : function(el, ev, drag){ ...}
})
'.show click' : function(el, ev){
Todo.findAll({after: new Date()}, this.callback('list'));
},
list : function(todos){
$('#todos').html( this.view(todos));
}
<% for(var i =0; i < this.length; i++){ %>
<label><%= this[i].description %></label>
<%}%>