AJAX vs PHP直接进入JS

时间:2011-05-11 16:15:33

标签: php javascript jquery

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

Hello there my name is [i="profile_pic.png"]A. Username[/i]

我遇到问题的部分是,在定义哪些图像可供用户使用时,是否应该将PHP数组直接插入到Javascript中,如下所示:

var available_images = "<?=json_encode($User->Profile->images)?>";

或者去寻找一个返回图像源编码数组的Ajax GET?我认为内联php更有意义,因为它不需要不必要的ajax调用,但我不认为将内联php插入javascript是非常好的形式?

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

如果您浏览Stack Overflow页面并执行 view-source ,他们会一直这样做。

如果数据量很大并且可能会在页面加载时间上增加7秒或更长时间,那么我会考虑使用ajax调用。至少页面被渲染,用户有东西可以看,同时你可以有一个带有状态消息说明加载或其他的动作图像。

我还说,为了它,我看到了很多不必要的ajax。这就像过早优化,人们增加复杂性来解决他们没有的问题。如果您正在使用所述页面进行响应时间问题,请从简单开始,然后考虑ajax将带来哪些好处。

答案 2 :(得分:2)

您是否总是获得图像数组,或者仅有时(例如,响应用户的操作)?如果是前者,我会说它是内联的。否则就像AJAX一样。即只有通过AJAX才能减少你的流量等。但如果你必须经常这样做,我看不出任何优势。我没有看到混合内联php和javascript的任何问题,除了它意味着你也必须你的内联javascript文件,而不是可以缓存的外部.js文件(或至少你填充你的数组的部分)。