1、为什么要把javascript放到服务器端上运行
1、首先JavaScript 是一种运行copy在浏览器中的解释型的网络的脚本语言/编程语言。
2、js单线程模型,从基因里限制了开发人员使用同步io的能力
3、考虑到高性能、符合事件驱动、没有历史包袱这3个主要原因
2、如何使用javascript向服务器提交数据
使用ajax对象 异步请来求服务自器
例如:(如下代码使用了jquery)
$.ajax({3、请教javascript调用服务器方法的问题
在aspx文件中找到Form1标签,在其后增加如下js脚本:
<input type="hidden" name="__EVENTTARGET"> <input type="hidden" name="__EVENTARGUMENT">
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
}
else {
theform = document.forms["Form1"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
2、然后javascript的函数中使用__doPostBack('Button1','')就可以调用指定服务器按钮的事件了,目前测试了调用Button的Click事件没有任何问题,不过即使Button的Visible="False"是,事件也是可以被触发的,所以如果需要调用别的服务器函数或者事件,可以在界面上放一个隐藏的Button控件,然后在它的Click事件中调用别的函数即可。
4、javascript如何向服务器发送请求
javascript中向服务器发送http请求借助的是XMLHttpRequest对象,其他一些库如JQuery对http的请求应该是在这个上面的封装,创建t对象用下面的语句:function createXMLHttpRequest() {var xmlHttp;if (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();if (xmlHttp.overrideMimeType)xmlHttp.overrideMimeType('text/xml');} else if (window.ActiveXObject) {try {xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {}}}return xmlHttp;}发送get请求,并异步处理xmlHttp = createXMLHttpRequest();var url = "getfiledetail.jsp?fileid="+id;xmlHttp.open("GET", url, true);// 异步处理返回xmlHttp.onreadystatechange = callback;xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");xmlHttp.send();发送post请求var url = "getNginxStatus";xmlHttp.open("POST", url, true);xmlHttp.onreadystatechange = getStatusBack;xmlHttp.setRequestHeader("Content-Type",
5、javascript是在服务器端解析还是 客户端解析
javascript、jquery、html、css等在客户端解析,后台语言在服务器端解析,如php、asp、jsp等
6、web服务器和JavaScript的关系
只要javascript脚本没有错误,只要客户端没有禁用javascript脚本
就是可以执行的,跟服务器没有关系
7、javascript能在服务端执行吗
可以,javascript是一种语言copy,所以只要是有js的解析环境别管是服务器还是客户端,甚至嵌入式板子上都是可以的。
目前比较出名的nodejs,就是使用libevent + v8 的组合,v8是google开源的一个js引擎,除了v8还有很多,例如火狐的Gecko等等。
所以服务器执行js是可以的,并且这几年火得一塌糊涂,如果想了解更多可以搜素nodejs相关的知识。官网地址:https://nodejs.org/en/
8、怎样使用javascript 向服务器端发送信息 向高手请教
AJAX
$.ajax({9、Javascript用的是什么服务器
你问的是用什么工具写吧,MyEclipse和DreamWeaver都可以的
10、如何使用javascript向服务器提交数据
第一种方式是,点击链接,触发一个函数,在该函数内,用dom生成表单和输入框,将值赋在表单里,提交表单。
[javascript] view
plaincopyprint?
function postwith(to, p) {
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = to;
for ( var k in p) {
var myInput = document.createElement("input");
myInput.setAttribute("name", k);
myInput.setAttribute("value", p[k]);
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
function postwith(to, p) {
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = to;
for ( var k in p) {
var myInput = document.createElement("input");
myInput.setAttribute("name", k);
myInput.setAttribute("value", p[k]);
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
[html] view
plaincopyprint?
<body>
<a href="javascript:postwith('save',{'currentPage':'2','xisuo':'计算机'})">use js to post</a>
<body>
<a href="javascript:postwith('save',{'currentPage':'2','xisuo':'计算机'})">use js to post</a>
save是个servlet
[java] view
plaincopyprint?
public class save extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String currentPage = request.getParameter("currentPage");
String xisuo = request.getParameter("xisuo");
System.out.println(currentPage+"---"+xisuo);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method1111111111");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public class save extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String currentPage = request.getParameter("currentPage");
String xisuo = request.getParameter("xisuo");
System.out.println(currentPage+"---"+xisuo);
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method1111111111");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
第二种是用表单
[html] view
plaincopyprint?
<body>
<form name="form1" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
<form name="form2" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
<form name="form3" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
</body>
<body>
<form name="form1" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
<form name="form2" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
<form name="form3" action="post-data-result.jsp" method="post">
<input name="post_data" type="text"></input>
<input type="button" onclick="postData()" value="提交"></input>
</form>
</body>
[javascript] view
plaincopyprint?
function postData(){
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = "post-data-result.jsp";
var inputs=document.getElementsByName("post_data");
var i;
for (i=0;i<inputs.length;i++) {
var myInput = document.createElement("input");
myInput.type = "text";
myInput.name="post_data";
myInput.value=inputs[i].value;
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
function postData(){
var myForm = document.createElement("form");
myForm.method = "post";
myForm.action = "post-data-result.jsp";
var inputs=document.getElementsByName("post_data");
var i;
for (i=0;i<inputs.length;i++) {
var myInput = document.createElement("input");
myInput.type = "text";
myInput.name="post_data";
myInput.value=inputs[i].value;
myForm.appendChild(myInput);
}
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
[html] view
plaincopyprint?
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>获得客户端数据</title>
</head>
<body>
<%
//这里设置的字符集要跟index.html中的charset一致
request.setCharacterEncoding("utf-8");
String[] text=request.getParameterValues("post_data");
for(String t : text){
out.print(t+"<br>");
}
%>
</body>
</html>