使用Django创建非重载动态web应用
据我了解,当你从一个网页应用发起新的请求时,通常需要重新加载页面才能处理和响应这个请求。
举个例子,如果你想在一个帖子下显示评论,你就得重新加载页面,处理评论,然后再显示出来。不过,我希望能像Facebook那样,添加评论时不需要重新加载整个页面,评论就能直接显示出来。这样做有可能只用Django和Python,而不需要了解Javascript或AJAX吗?
我听说用AJAX可以做到(我不太清楚怎么做),但我在想用Django能不能实现。
谢谢,
4 个回答
1
也许可以用几个iFrame和一些Comet/长轮询?把评论提交放在一个iFrame里(这样整个页面就不会重新加载),然后在长轮询的iFrame里显示结果……
不过这么做其实设计得不太好,你可能不想这样做。用AJAX/JavaScript来处理这种事情会更合适。
我听说用AJAX是可以做到的……但我在想用Django能不能实现。
其实你完全可以同时使用这两者——具体来说,就是在Django的网页应用中使用AJAX。Django提供了你所需要的组织结构和框架(还有一个可以响应AJAX请求的页面),然后在客户端用一些JavaScript来发起AJAX请求,这样你的Django页面就能正确响应了。
我建议你去找一个基础的jQuery教程,这样可以学到足够的基本JavaScript,让你实现这个功能。
8
你想在不使用任何客户端代码(比如JavaScript和Ajax)和不重新加载页面(或者至少不重新加载部分内容)的情况下做到这一点吗?
如果是这个问题,那么很遗憾,答案是你做不到。你要么需要使用客户端代码,要么就得重新加载页面。
想想看,一旦用户获取了页面,页面就不会改变,除非:
- 用户向服务器请求同一个页面,服务器返回一个更新过的页面。
- 页面里有一些客户端代码(比如JavaScript),可以更新页面。