Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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
AJAX与PHP直接转换为JS_Php_Javascript_Jquery - Fatal编程技术网

AJAX与PHP直接转换为JS

AJAX与PHP直接转换为JS,php,javascript,jquery,Php,Javascript,Jquery,我有一个小难题。基本上,我正在为jQuery开发一个WYSIWYG编辑器插件,专门用于我的web应用程序。其中一个功能是根据用户上传的图像插入内嵌图像工具提示。例如: Hello there my name is [i="profile_pic.png"]A. Username[/i] 我遇到的问题是,在定义哪些图像可供用户使用时,我是否应该将PHP数组直接插入Javascript,如下所示: var available_images = "<?=json_encode($User-&g

我有一个小难题。基本上,我正在为jQuery开发一个WYSIWYG编辑器插件,专门用于我的web应用程序。其中一个功能是根据用户上传的图像插入内嵌图像工具提示。例如:

Hello there my name is [i="profile_pic.png"]A. Username[/i]
我遇到的问题是,在定义哪些图像可供用户使用时,我是否应该将PHP数组直接插入Javascript,如下所示:

var available_images = "<?=json_encode($User->Profile->images)?>";
var-available_-images=”“;
或者使用Ajax GET返回图像源的编码数组?我认为内联php更有意义,因为它消除了不必要的ajax调用,但我不认为将内联php插入javascript是非常好的形式


有什么建议吗?

将PHP收集的数据插入JS没有问题,否则JS将如何获取数据?你应该考虑Ajax调用的唯一原因是,如果用户在编辑时可以上传新的图像。这意味着信息需要更新,这将使AJAX调用比页面加载时的静态JSON更具吸引力

除非数组在页面的生命周期内发生任何变化,否则我会按照您在代码片段中的建议完全吐出数组。有一个额外的ajax调用并没有任何真正的好处,因为我猜数组的大小不会太大,以至于影响初始页面加载时间

如果您查看堆栈溢出页面并查看源代码,那么它们一直都在做这类事情

如果数据量很大,可能会在页面加载时间增加七秒以上,那么我会考虑Ajax调用。至少页面被呈现,用户有东西要看,同时你可以有一个throbber图像,带有一条状态消息,上面写着loading或其他什么


我还想说,我看到很多不必要的ajax只是为了它。这就像过早的优化,人们增加复杂性来解决他们没有的问题。当你开始做简单的事情时,如果你在页面上有响应时间的问题,那么考虑Ajax会给桌面带来什么好处。

< P>你总是得到图像的数组,还是有时(例如响应用户的动作)?如果是前者,我会说在线进行。否则,将其作为AJAX执行。i、 e.只有在AJAX可以减少流量的情况下才能使用它。但是如果你必须一直这样做,我看不到任何好处。我认为混合使用内联php和javascript没有任何问题,只是这意味着您也必须内联使用javascript,而不是在可以缓存的外部.js文件中(或者至少在填充数组的部分中)使用javascript。

+1问个好问题。如果将它放在进行AJAX调用的类中,那么该调用可以在其他地方重用。我为一个项目创建了一个数据层(
data.js
),并在整个应用程序中使用它。我不确定你的web应用程序是如何架构的,但需要考虑一下。我刚刚意识到,实际上我可能需要用户添加图像的能力,因此在这种情况下,AJAX调用是更好的主意。谢谢