在使用两种语言时,如何决定是使用JavaScript对象还是使用PHP对象


How to decide whether to use a JavaScript or PHP object when using both languages?

例如,您正在构建一个字典应用程序,其中的条目是对象,所有值都存储在服务器端数据库中。这些条目在客户端是可见的,因此它们最终应该是JavaScript对象。然而,由于数据是服务器端的,因此有两种方法可以构造对象:

  1. 通过PHP构建entries对象,然后将结果传递给.js脚本,后者从中生成JavaScript对象。

  2. 通过JavaScript构建条目,在对象上调用AJAX方法,从服务器请求关于条目的特定信息(例如定义、同义词、反义词等)。

第一种方法最终构建每个条目两次,一次是通过PHP,一次通过JavaScript。第二种方法最终为每次构造调用几个AJAX方法,并每次打开和关闭数据库连接。

是一个比另一个更可取,还是有更好的方法?

我使用经验法则,AJAX(在页面打开器上)越少越好

如果你能将页面加载的所有信息推送给用户,那就去做吧。然后在后续调用中使用AJAX。否则,用户体验将受到AJAX的影响(而不是好处),因为加载页面需要更长的时间。

另一种选择是,如果你不与PHP绑定,那么就有一个基于JS的后端,比如Node.JS。这样你就可以用一种格式传输所有内容。在某些情况下,您甚至可以将JS对象直接存储在数据库中。如果文档数据库适合您的需求,那么这种后端的例子将是Node.js+MondoDB。

如果你使用PHP/JS,我会尽量减少AJAX调用。进行异步传输(复制对象)应该可以改善用户体验,所做的选择应该针对这一点。过多的HTTP请求通常会导致网站反应迟钝,这是我们通常试图通过使用AJAX来消除的问题之一。

有时有用的一种方法是通过PHP渲染JS对象,如果需要数据,可以使用该方法,但不应该直接(或根本)向用户显示。

完全取决于项目。变量太多了,不能说"你应该这样做"。

相反,测试它。用一种方法,将它推送到大量请求中,并对其进行分析。然后切换并尝试另一种方法。通过遵循MVC模式,可以轻松切换PHP的输出。

唯一的一般规则是"尽量减少HTTP请求的数量",因为HTTP是加载页面时最大的瓶颈。