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>