我正在开发一个专注于ajax的Web应用程序。
表示整个应用程序只在一个页面上,但传统页面中的线程除外。所以我必须有非常结构化的JS代码,我想知道它们是否适用于基于ajax的应用程序。
例如。 codeigniter,cakephp和其他我读过的关于不关注这个。他们只是根据mvc。
组织常规的PHP代码因为我的代码开始变得非常混乱(特别是js代码),我真的需要一些结构。有没有办法在javascript中使用相同的mvc + oop结构?我从未听过有人在谈论它。即使我把js代码放在单独的文件中,例如每个页面一个,有很多行,每当我必须添加一些新的功能时我都会感到迷茫和紧缩。
如果有建议和想法如何构建它会很棒!
答案 0 :(得分:4)
我认为你对此有错误的看法。
AJAX重量级站点或应用程序与其Web 1.0对应物的基础并没有太大差别。您仍然拥有相同的基本组件:HTTP请求和响应。只是使用AJAX,您很少请求完整的HTML页面。大多数情况下,您要请求HTML,XML或JSON的片段。
所以,仅仅因为你有一个90%以上的网站/应用+ AJAX驱动并不意味着你需要抛弃像MVC这样的现有惯例并寻找新的东西。
大多数现代框架都有大量的AJAX内容:ZF,symfony,cake等。
我不知道任何框架,PHP或JavaScript,面向您的要求。话虽这么说,你可能会看到High-performance JavaScript: Why Everything You've Been Taught Is Wrong,Designing the Rich Web Experience和High Performance Ajax Applications,即使现在已经有几年了。
另外,考虑深入研究AJAX的项目并了解它们如何打勾。基于ExtJS和jQuery UI的应用程序将是一个良好的开端。
答案 1 :(得分:1)
您可以查看Zephyr。从来没有使用它,我只知道它主要用于AJAX应用程序。
答案 2 :(得分:1)
symfony 框架非常适合Ajax,他们有一个经过深思熟虑的方法,涉及MVC后端和JavaScript代码,尤其是流行的JavaScript库,如JQuery和Scriptaculous。
值得您花时间阅读chapter on Ajax in the Symfony Askeet tutorial只是为了了解其他人是如何做到的。此外,Ajax chapter in the older symfony book概述了Askeet教程中显示的搜索自动完成功能之外的其他用途。
答案 3 :(得分:0)
答案 4 :(得分:0)
我构建这样的应用程序。我的架构:
在这种方法中,Web服务不发回任何类型的预生成HTML。它们是数据桥梁,来回穿梭记录。所有UI构建都在客户端完成。 Zend_Json_Server将PHP类公开为服务(类的方法是服务的功能)。这使PHP设计保持清洁,并提供UI的极大灵活性。移动前端与RIA前端围绕相同的类建立。在相同的Web服务(例如,Windows应用程序,iphone应用程序......)之上构建其他应用程序也很容易。最少量的PHP代码可以降低服务器开销。
如果我是你,我会更专注于你使用的javascript框架而不是PHP框架。如果你要全力以赴(没有基本的html后备),那么让服务器参与生成UI就没有意义了(它只会减慢应用程序的速度)。
答案 5 :(得分:0)
你想要一些特殊的ajax,可以集成到其他框架中吗?尝试,Cjax:http://cjax.sourceforge.net/examples/,适用于重型ajax,带有ajax控制器和路由。
我被告知要提供更多细节,所以在这里......
它允许您在PHP端编写ajax,它为您提供了许多工具,您可以使用这些工具使您的开发体验顺利进行。它还为您重新发明轮子节省了大量时间
Cjax带有超过70个示例/样本/文档和API,可以让您使用一行代码执行令人惊奇的事情,否则将需要数小时或数天,甚至数周!你知道,通常的成功信息,灯箱,用ajax提交表单,用ajax上传文件,你知道 - 你将在你的应用程序或网站中使用的常用内容,已成为ajax函数的电子系统。
Cjax将您所有的ajax代码合并到一个地方。使您的代码更安全。 Cjax也只有一个访问点。使您的应用程序或网站非常安全。 Cjax允许您通过调度程序使用类和路由您的ajax调用来访问您的ajax控制器。包含一个回调系统,允许您在页面加载时执行ajax请求,但是,当您在服务器上触发一次ajax请求时,它允许您运行更多的ajax代码,并从后面与您的应用程序或网站进行交互 - 结束,直接来自您的控制器。这使您可以自由地来回走动,从一种方法到另一种方式,协调工作。还包括一种方法,您可以直接从后端管理页面上的所有元素,所有这些都在一个ajax调用中完成。
Cjax是构建ajax功能的一种机器。使用非常规方法推动bounderies允许你只写很少的短代码。
Cjax可以让您调用和使用现有的JavaScript,而无需对其进行更改。它真的可以用你想表达的方式表达自己。您有旧的或新的自定义JavaScript,使用Cjax执行它 - 您可以将数据传递到现有函数,直接从后端实现它们。您使用其他第三方库或代码 - 没问题。 Cjax允许你执行它,并从后端传递数据,你可以根据需要多次调用它们,没有限制,只有天空。您可以从简单的字符串或整数传递到整个数组或对象。猜猜是什么,事实上,这就是Cjax的插件,“插件”只是一种形式,但它们的确是什么 - 自定义代码与Cjax一起运行。如果你运行自定义代码,你已经构建了一个Cjax插件!
Cjax代码简单易懂,并且使用约定优于配置方法来充分利用。
我会举几个例子: 分页:http://cjax.sourceforge.net/examples/pagination.php 自动完成,ajax上传器等。