📜  CherryPy-使用Ajax

📅  最后修改于: 2020-10-26 05:23:59             🧑  作者: Mango


到2005年,所有Web应用程序遵循的模式是每页管理一个HTTP请求。从一页导航到另一页需要加载整个页面。这将在更大程度上降低性能。

因此,用于将AJAX,XML和JSON嵌入其中的富客户端应用程序出现了增长。

AJAX

异步JavaScript和XML(AJAX)是一种创建快速动态网页的技术。 AJAX允许通过与服务器在后台交换少量数据来异步更新网页。这意味着可以更新网页的某些部分,而无需重新加载整个页面。

Google Maps,Gmail,YouTube和Facebook是AJAX应用程序的一些示例。

Ajax基于使用JavaScript发送HTTP请求的思想。更具体地说,AJAX依靠XMLHttpRequest对象及其API来执行那些操作。

JSON格式

JSON是一种携带序列化JavaScript对象的方式,JavaScript应用程序可以评估序列化的JavaScript对象并将其转换为可以稍后处理的JavaScript对象。

例如,当用户向服务器请求以JSON格式格式化的相册对象时,服务器将返回以下输出:

{'description': 'This is a simple demo album for you to test', 'author': ‘xyz’}

现在数据是一个JavaScript关联数组,并且可以通过以下方式访问description字段:

data ['description'];

将AJAX应用于应用程序

考虑该应用程序,该应用程序包括一个带有index.html和Jquery插件的名为“ media”的文件夹,以及一个带有AJAX实现的文件。让我们将文件名视为“ ajax_app.py”

ajax_app.py

import cherrypy
import webbrowser
import os
import simplejson
import sys

MEDIA_DIR = os.path.join(os.path.abspath("."), u"media")

class AjaxApp(object):
   @cherrypy.expose
   def index(self):
      return open(os.path.join(MEDIA_DIR, u'index.html'))

   @cherrypy.expose
   def submit(self, name):
      cherrypy.response.headers['Content-Type'] = 'application/json'
      return simplejson.dumps(dict(title="Hello, %s" % name))
        
config = {'/media':
   {'tools.staticdir.on': True,
   'tools.staticdir.dir': MEDIA_DIR,}
}
            
def open_page():
webbrowser.open("http://127.0.0.1:8080/")
cherrypy.engine.subscribe('start', open_page)
cherrypy.tree.mount(AjaxApp(), '/', config=config)
cherrypy.engine.start()

类“ AjaxApp”重定向到媒体文件夹中包含的“ index.html”网页。

AJAX with jQuery and cherrypy
      
      
        
      
        
   
    
   
      

What's your name?


AJAX的函数包含在