例子中,我用的是显示机器上的进程信息的表格,获取不同的机器的进程信息时,更新这个展示信息的表格,如下:
当我在输入框中输入ip时,我希望只是更新这个表格,页面其他部分不变,实现方式如下:
1、在原页面中设置这个表格的id为pstable
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
< table class = "table table-striped" id = "pstable" > < thead > < tr > < th >user</ th > < th >pid</ th > < th >cmd</ th > </ tr > </ thead > < tbody > {% for ps in info.ps_data %} < tr > {% for item in ps %} < td >{{ item }}</ td > {% endfor %} </ tr > {% endfor %} </ tbody > </ table > |
2、实现js
1
2
3
4
5
6
7
8
9
10
11
|
< script type = "text/javascript" > $(document).ready(function(){ $("#gobtn").click(function(){ var ip=$("#ip").val(); //获取输入框中的ip $.post("/process/",{'hostip':ip}, //post函数到后端 function(data,status){ //回调函数 $("#pstable").html(data); //将id为pstable的标签的html替换为返回的data $("#ip").val(ip) //将输入框的值改为查询的ip }); }); }); |
3、view函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
def process_view(request): hostip = request.POST.get('hostip') logger.debug("host:%s" % hostip) if hostip is None: ps_data = GetHostPs('192.168.163.128') info = {'username':request.user,'ps_data':ps_data} template = 'process.html' #return render(request,'process.html',{"info":info}) elif hostip: ps_data = GetHostPs(hostip) info = {'username':request.user,'ps_data':ps_data} template = 'pstable.html' #return render(request,'pstable.html',{"info":info}) else: ps_data = GetHostPs('192.168.163.128') info = {'username':request.user,'ps_data':ps_data} template = 'pstable.html' return render(request,template,{"info":info}) |
4、pstable.html 在这个html定义好要根据ip获取到进程信息后的html代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
< thead > < tr > < th >user</ th > < th >pid</ th > < th >cmd</ th > </ tr > </ thead > < tbody > {% for ps in info.ps_data %} < tr > {% for item in ps %} < td >{{ item }}</ td > {% endfor %} </ tr > {% endfor %} < tbody > |
当点击按钮查询指定ip的进程信息时,process()会判断这个ip的存在,如果这个ip存在,会将pstable.html保存到js函数中的data参数,然后js参数会调用回调函数,将id为pstable的tag的html替换为参数data保存的html,即pstable.html,从而局部修改页面,展示进程信息。
以上这篇django js实现部分页面刷新的示例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u011085172/article/details/70917475