在Ajax响应中包含JavaScript(jQuery)代码是否是一种好习惯? 它可以工作,但是我觉得这不是最好的方法(而且我认为这是一个糟糕的设计,使事情难以调试)。

是否应该在对服务器进行Ajax调用之前加载所有JavaScript?

最好的方法是什么? 一个简单的例子会有所帮助!

===============>>#1 票数:4 已采纳

AJAX响应中的Javascript代码存在许多问题:

1)无法确定Javascript代码的加载时间。 不要从服务器动态加载js代码。 脚本加载属性无法在所有浏览器中很好地实现。

2)动态CSS加载/动态加载的js上的应用无法及时同步,再次出现计时问题。

3)闭包问题-通常,响应函数是$ .ajax函数的子级(回调),再次$ .ajax是事件处理程序的子级。 因此最好只在第一次加载浏览器时放入js。 如果变量放置不正确,则可能会遇到关闭问题。

因此,基本上, 仅将响应解析代码放在function(response){}中,例如XML,JSON,Text,HTML ...

请记住,在回调函数中填充大量代码是一种不良做法。

===============>>#2 票数:2

我认为您的工程本能是对的。 将您的代码放入JavaScript文件中,对其进行压缩/最小化/打包,然后将其提供一次。 然后,浏览器可以对其进行缓存。 将ajax调用限制为从服务器而不是代码中检索数据或标记。

... 95%的时间。 我愿意打赌, 有时候您可以证明奇怪的代码作为有效负载,但是我还没有这样做。

===============>>#3 票数:0

我认为可以加载少量但不是很多脚本代码以及ajax响应。

例如,我们使用MVC3及其jquery非侵入式验证插件。 我们的某些表单通过ajax加载了部分视图。 它们加载后,为了使客户端验证再次起作用,我们必须运行以下这行jQuery:

$.validator.unobtrusive.parse('form');

像这样的东西我不介意在局部视图中使用,尽管它可以很容易地在$ .ajax.success函数中出现。

  ask by Subrat Basnet translate from so

未解决问题?本站智能推荐:

关注微信公众号