在Ajax响应中包含JavaScript(jQuery)代码是一种好习惯。 它有效,但我觉得这不是最好的方法(我觉得这是一个糟糕的设计并且难以调试)。
在对服务器进行Ajax调用之前是否应该加载所有JavaScript?
最好的方法是什么?一个简单的例子会有所帮助!
答案 0 :(得分:4)
AJAX响应中的Javascript代码存在许多问题:
1)无法确定Javascript代码加载时间。不要从服务器动态加载js代码。脚本加载属性在浏览器中没有得到很好的实现。
2)动态加载的js上的动态CSS加载/应用不能及时同步,再次计时问题。
3)关闭问题 - 通常响应函数是$ .ajax函数的子(回调),$ .ajax再次是事件处理程序的子代。所以最好把js第一次放入浏览器加载。如果没有正确放置变量,您可能会面临关闭问题。
所以,基本上只将响应解析代码放在函数(响应){}中,比如XML,JSON,Text,HTML ......
请记住,在回调函数中填充大量代码是一种不好的做法。
答案 1 :(得分:2)
我认为你的工程本能是正确的。将您的代码放在JavaScript文件中,压缩/缩小/打包,并提供一次。然后浏览器可以缓存它。限制你的ajax调用从服务器检索数据或标记,而不是代码。
...... 95%的时间。我愿意打赌你可以证明奇怪的代码 - 有效载荷有时,但我还没有去做。
答案 2 :(得分:0)
我认为有一点但不是很多的脚本代码加载以及ajax响应是可以的。
例如,我们使用MVC3及其jquery不显眼的验证插件。我们的一些表单通过ajax加载了部分视图。加载后,为了让客户端验证再次起作用,我们必须运行这一行jQuery:
$.validator.unobtrusive.parse('form');
类似的东西我不介意在局部视图中,尽管它可以很容易地进入$ .ajax.success函数。