⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sajax1.py

📁 Ajax最流行书籍
💻 PY
字号:
#!/usr/bin/env pythonimport cgiimport cgitb; cgitb.enable()import osimport sysimport datetimeimport urllibprint "Content-type: text/html"sajax_debug_mode = Falsesajax_export_list = {}sajax_js_has_been_shown = Falseform = cgi.FieldStorage()def sajax_init():   pass   def sajax_handle_client_request():   func_name = form.getfirst('rs')   if func_name is None:      return         # Bust cache in the head   print "Expires: Mon, 26 Jul 1997 05:00:00 GMT"     print "Last-Modified: %s GMT" % datetime.datetime.utcnow().strftime(                                                      "%a, %d %m %H:%M:%S")   # always modified   print "Cache-Control: no-cache, must-revalidate" # HTTP/1.1   print "Pragma: no-cache"                         # HTTP/1.0   print      if not func_name in sajax_export_list:      print "-:%s not callable" % func_name   else:      print "+:",      rsargs = form.getlist('rsargs[]')      result = sajax_export_list[func_name](*rsargs)      print result   sys.exit()      def sajax_get_common_js():   sajax_debug_modeJS = str(sajax_debug_mode).lower()   return """\                // remote scripting library		// (c) copyright 2005 modernmethod, inc		var sajax_debug_mode = %(sajax_debug_modeJS)s;				function sajax_debug(text) {			if (sajax_debug_mode)				alert("RSD: " + text)		}		 		function sajax_init_object() { 			sajax_debug("sajax_init_object() called..") 			 			var A;			try {				A=new ActiveXObject("Msxml2.XMLHTTP");			} catch (e) {				try {					A=new ActiveXObject("Microsoft.XMLHTTP");				} catch (oc) {					A=null;				}			}			if(!A && typeof XMLHttpRequest != "undefined")				A = new XMLHttpRequest();			if (!A)				sajax_debug("Could not create connection object.");			return A;		}		function sajax_do_call(func_name, url, args) {			var i, x, n;			for (i = 0; i < args.length-1; i++) 				url = url + "&rsargs[]=" + escape(args[i]);			url = url + "&rsrnd=" + new Date().getTime();			x = sajax_init_object();			x.open("GET", url, true);			x.onreadystatechange = function() {				if (x.readyState != 4) 					return;				sajax_debug("received " + x.responseText);								var status;				var data;				status = x.responseText.charAt(0);				data = x.responseText.substring(2);				if (status == "-") 					alert("Error: " + data);				else  					args[args.length-1](data);			}			x.send(null);			sajax_debug(func_name + " url = " + url);			sajax_debug(func_name + " waiting..");			delete x;		}                   """ % locals()def sajax_show_common_js():   print sajax_get_common_js()def sajax_esc(val):   return val.replace('"', '\\\\"')	def sajax_get_one_stub(func_name):   uri = os.environ['SCRIPT_NAME']   if os.environ.has_key('QUERY_STRING'):      uri += "?" + os.environ['QUERY_STRING'] + "&rs=%s" % urllib.quote_plus(func_name)   else:      uri += "?rs=%s" % urllib.quote_plus(func_name)         escapeduri = sajax_esc(uri)   return """   // wrapper for %(func_name)s   function x_%(func_name)s(){      // count args; build URL            sajax_do_call("%(func_name)s",                    "%(escapeduri)s",                    x_%(func_name)s.arguments);      }            """ % locals()def sajax_show_one_stub(func_name):   print sajax_get_one_stub(func_name)def sajax_export(*args):   decorated = [(f.func_name, f) for f in args]   sajax_export_list.update(dict(decorated))     def sajax_get_javascript():   global sajax_js_has_been_shown   html = ''   if not sajax_js_has_been_shown:      html += sajax_get_common_js()      sajax_js_has_been_shown = True      for func_name in sajax_export_list.iterkeys():      html += sajax_get_one_stub(func_name)   return htmldef sajax_show_javascript():   print sajax_get_javascript()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -