Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当使用两种语言时,如何决定是否使用JavaScript或PHP对象?_Php_Javascript_Oop - Fatal编程技术网

当使用两种语言时,如何决定是否使用JavaScript或PHP对象?

当使用两种语言时,如何决定是否使用JavaScript或PHP对象?,php,javascript,oop,Php,Javascript,Oop,例如,您正在构建一个字典应用程序,其中条目是对象,所有值都存储在服务器端数据库中。这些条目在客户端是可见的,因此它们最终应该是JavaScript对象。但是,由于数据是服务器端的,因此有两种方法来构造对象: 通过PHP构造entries对象,然后将结果传递给.js脚本,该脚本从中生成JavaScript对象 通过JavaScript构建条目,调用对象上的AJAX方法,从服务器请求关于条目的特定信息(例如定义、同义词、反义词等) 第一种方法是两次构造每个条目,一次通过PHP,一次通过JavaScr

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

  • 通过PHP构造entries对象,然后将结果传递给.js脚本,该脚本从中生成JavaScript对象

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

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


    一种方法比另一种更可取,还是有更好的方法可以做到这一点?

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


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

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


    如果您可以将页面加载上的所有信息推送到用户,那么就这样做。然后在后续调用中使用AJAX。否则,用户体验将受到AJAX的影响(而不是好处),因为页面加载时间会更长。

    如果您不使用PHP,另一个选择是使用基于JS的后端,如Node.JS。通过这种方式,您可以以一种格式传输所有内容。在某些情况下,甚至可以将JS对象直接存储在数据库中。如果文档数据库适合您的需要,这种后端的一个例子就是Node.js+mondodb

    如果您使用PHP/JS,我会尽量减少AJAX调用。进行异步传输(复制对象)应该可以改善用户体验,所做的选择应该以此为目标。过多的HTTP请求通常会导致站点反应缓慢,这是我们通常试图通过使用AJAX摆脱的问题之一


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

    另一种选择是,如果您不使用PHP,可以使用基于JS的后端,如Node.JS。通过这种方式,您可以以一种格式传输所有内容。在某些情况下,甚至可以将JS对象直接存储在数据库中。如果文档数据库适合您的需要,这种后端的一个例子就是Node.js+mondodb

    如果您使用PHP/JS,我会尽量减少AJAX调用。进行异步传输(复制对象)应该可以改善用户体验,所做的选择应该以此为目标。过多的HTTP请求通常会导致站点反应缓慢,这是我们通常试图通过使用AJAX摆脱的问题之一


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

    完全取决于项目。有太多的变量,不能说“你应该这样做”

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


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

    完全取决于项目。有太多的变量,不能说“你应该这样做”

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

    唯一的一般规则是“最小化HTTP请求的数量”,因为HTTP是加载页面时最大的瓶颈