我正在使用MySQL / PHP / Javascript构建一个webapp。
在PHP中,我已经从域中获得了所有类中存在于数据库中的问题。 在Javascript中,有一个缓存包含上次查询中的对象。
当用户更新Javascript中的对象时,它必须在服务器端更新自己。哪种方法最好?
我是否应该在PHP和Javascript中创建一个用于通信目的的类? Javascript中的每个对象是否应该将AJAX查询发送到不同的php文件,具体取决于它需要更新的对象的类? 是否有任何模式可以解决这个问题?
答案 0 :(得分:1)
如果这是一个任何规模的项目,那么为每个类创建一个单独的PHP文件肯定会更易于维护。它还允许您根据类进行不同的服务器级身份验证。
在JavaScript方面,你肯定想要某种类型的AJAX库,无论你是自己把它放在一起(我在大约50行JavaScript中做了一次)或者使用其中一个。您可能需要一个或两个知道如何序列化数据的辅助函数(XML,JSON,分隔符等)。
您可以在JavaScript中编写面向对象的代码,如果您已经这样做了,那么添加一个write()或updateServer()方法来调用具有正确参数的正确参数的AJAX库是有意义的。如果你没有编写OO代码,那么拥有单独的函数仍然是有意义的,但只有当你需要持有这些对象时才有多个地方。
答案 1 :(得分:1)
大多数AJAX框架(jQuery等)都会向'xmlhttprequest'发送'HTTP_X_REQUESTED_WITH'标头集。我喜欢用它来决定使用哪个视图。
这意味着可以使用相同的URL通过JavaScript检索JSON,XML或HTML代码段,或者在发出标准GET / POST请求时返回完整文档。
这意味着如果用户已禁用JS,您的应用只会恢复正常请求。
答案 2 :(得分:0)
我认为您应该使用PHP和JavaScript查看REST ful API。您将域模型对象称为唯一资源(例如/ application / books / 1)。如果您只想实现CRUD功能,那么更新相应域模型的通用控制器(例如使用Doctrine等ORM工具)就足够了。
如果你真的想在JavaScript中使用相同的模型取决于你的应用程序。我喜欢在客户端管理单个JavaScript对象的想法,该对象将通过REST加载,然后填充到HTML表单并发送回来,例如作为JSON(或作为一个简单的表单提交)到服务器。如果客户端模型构思对您有吸引力,我建议您查看具有非常有趣的模型实现的JavaScript MVC。