我有一个奇怪的经历。 在 ajax 调用成功后,我对 DOM 进行了大量计算和处理,一切都尽可能顺利。 接下来,我将 success 中编写的整个代码移动到一个单独的 javascript 函数,该函数又在 ajax 的 success 部分被调用。 现在我看到函数执行有 1-2 秒的滞后。内联代码是否可能比函数调用更快?
编辑 示例代码:
$.ajax({
url: '/apps/project/controller/load_data',
method: 'get',
dataType: "json",
data: {},
success: function(data) {
//Parse JSON (Huge Data) and insert into DOM
}});
我做的第二种方法
$.ajax({
url: '/apps/project/controller/load_data',
method: 'get',
dataType: "json",
data: {},
success: function(data) {
populate_timeline(data)
}});
function populate_timeline(json){
//Parse JSON (Huge Data) and insert into DOM
}
最佳答案
一个建议是不要使用匿名传递来复杂化您的问题。您应该能够简单地执行 success: populate_timeline
,因为函数是 JavaScript 中的一阶对象。您可能必须确保在 ajax 中引用 populate_timeline
之前声明它,我不知道您的所有代码是如何布局或调用的。
我最近在优化一个脚本,发现内联单个函数调用对性能的影响确实很小。那段代码以非常短的 setInterval 时间执行了一些 Canvas 动画,因此函数调用每秒进行了很多次。
您是否回过头来确保将之前的内联代码移动到它自己的函数中是唯一您所做的事情?不假思索地进行其他更改很容易。此外,如果您出于开发目的在本地计算机上运行此代码,请确保不仅仅是 ajax 调用比函数调用更慢。也许您现在正在运行其他一些 CPU 繁重的进程,这些进程之前没有运行并且正在减慢 ajax 响应?
关于Javascript 调用函数或内联代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9389067/