我用jQuery和Python摸索了一下,我试图展示一个非常简单的页面,显示一个加载img,而一个有点长度的python脚本获取我需要显示的信息。
当然,当Python脚本准备就绪时,我希望隐藏加载图像并在其中显示Python脚本的结果。
到目前为止,我能够将其与我的网页上的一些Google帮助相结合:
<html>
<head>
<img id="img" src="loader.gif">
<script src="assets/js/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
url: "http://localhost/test.py";
$.post(url, function(data){
$("#id").html(data);
});
$("#img").hide();
});
</script>
</head>
</html>
任何帮助都会受到高度赞赏。谢谢!
答案 0 :(得分:2)
这部分
$("#id").html(data);
表示jQuery使用您的Python脚本的响应填充id为“id”的元素。问题是您没有id="id"
的元素。
您还希望将$("#img").hide();
放在$.post
的成功处理程序中。这样,$.post
完成后隐藏了图像。使用当前代码,它会立即隐藏,因为$.post
是异步请求,因此任何其他代码都不会等待它。
您的代码应如下所示:
<html>
<head>
<img id="img" src="loader.gif">
<div id="id"></div>
<script src="assets/js/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
url: "http://localhost/test.py";
$.post(url, function(data){
$("#id").html(data);
$("#img").hide();
});
});
</script>
</head>
</html>
请注意我添加的<div>
(您可以将其替换为您想要的任何其他HTML元素)。
<强>更新强>
由于各种原因,您的$.post
请求可能会失败。目前,您只有一个成功处理程序,只有在请求成功时才会被调用。你可以像这样添加一个“不成功”的处理程序:
$.post(url, function(data){
$("#id").html(data);
$("#img").hide();
})
.fail(function(response) {
alert('Error: ' + response.responseText);
// .. do something else ..
});
答案 1 :(得分:1)
这对我来说效果很好:
<强>的index.php 强>
<!DOCTYPE html>
<html>
<head>
<title>Python Loading IMG Page</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
<script src="src/jquery-1.10.2.min.js" type="text/javascript"></script>
</head>
<body>
<div id="container">
<div id="loading">
<img src="src/loading.gif" alt="loading_icon" />
</div>
<div id="results"></div>
</div>
<script language="javascript" type="text/javascript">
var URL = 'cgi-bin/test.py';
function read(){
$('#loading').show();
$.get(
URL,
{},
function(result){
$('#loading').hide();
$('#results').html(result);
},
'text'
).fail(function() {
alert('Wrong Python URL');
});
}
read();
</script>
</body>
</html>
<强>的cgi-bin / test.py 强>
#!/usr/bin/env python
print "Content-type: text/html\r\n"
print "\r\n"
print "This is where the text goes."
print "Make sure you use HTML tags."