我正在尝试在我的asp.net页面中实现Jquery AJAX。我应该将$ .post或$ .ajax放在我的脚本中。
答案 0 :(得分:2)
您不一定需要在document.ready回调中放置$ .post和$ .ajax调用。只有当您想要将某些值作为参数传递给DOM时,才需要这样做。但是,如果您发送的所有值都不依赖于DOM,那么在加载DOM之前,您可以完全正确地触发AJAX请求。唯一的限制是脚本需要放在jquery.js脚本脚本包含之后。例如,您可以将以下脚本放在页面的<head>
部分,而不需要任何document.ready:
<head>
...
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$.post('/some_script.cgi', { foo: 'bar' }, function(result) {
alert('success');
});
</script>
</head>
但是如果你想传递一些属于DOM的值,那么你需要包装一个document.ready:
<head>
...
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
// Here you are accessing the DOM to get the value of the
// #some_element_id so you need to place your script in a
// document.ready
var value = $('#some_element_id').html();
$.post('/some_script.cgi', { foo: value }, function(result) {
alert('success');
});
});
</script>
</head>
因为你可以看到它将完全取决于你的特定场景,但$ .post和$ .ajax方法根本不需要放在document.ready回调中。