js如何把数据保存到服务器端,用文件系统

js如何把数据保存到服务器端,用文件系统,第1张

<script type="text/javascript">

/

 CreateFile: 测试在电脑上创建一个文件件,并在文件夹里写进一些数据。

 

 /

function CreateFile()

{

   var fso, tf;

   fso = new ActiveXObject("ScriptingFileSystemObject");//获取对象

   tf = fsoCreateTextFile("c:\\testfiletxt", true);//创建一个文件夹

   // 写一行,并且带有新行字符。

   tfWriteLine("Testing 1, 2, 3") ;

   // 向文件写三个新行字符。  

   tfWriteBlankLines(3) ;

   // 写一行。

   tfWrite ("This is a test");

   tfClose();//关闭

}

/

 Folder的API:

 任务 方法 

 创建文件夹。 FileSystemObjectCreateFolder 

 删除文件夹。 FolderDelete 或 FileSystemObjectDeleteFolder 

 移动文件夹。 FolderMove 或 FileSystemObjectMoveFolder 

 复制文件夹。 FolderCopy 或 FileSystemObjectCopyFolder 

 检索文件夹的名字。 FolderName 

 如果文件夹在驱动器上存在,则找出它。 FileSystemObjectFolderExists 

 获得现有 Folder 对象的实例。 FileSystemObjectGetFolder 

 找出文件夹的父文件夹名。 FileSystemObjectGetParentFolderName 

 找出系统文件夹的路径。 FileSystemObjectGetSpecialFolder 

 /

function ManipFiles()

{

   var fso, f1, f2, s;

   fso = new ActiveXObject("ScriptingFileSystemObject");

   f1 = fsoCreateTextFile("c:\\testfiletxt", true); //如果当前文件已经存在的话,则覆盖原有文件

   alert("Writing file <br>");

   // 写一行。

   f1Write("This is a test");

   // 关闭文件。

   f1Close();

   alert("Moving file to c:\\tmp <br>");

   if(!fsoFolderExists("c:\\tmp")) { //如果tmp目录不存在,则创建一个目录

        fsoCreateFolder("c:\\tmp");

   }

   // 获取 C 的根目录(C:\)中的文件的句柄。

   f2 = fsoGetFile("c:\\testfiletxt");

   // 把文件移动到 \tmp 目录。如果这个tmp目录下已经有testfiletxt文件了,则会出错。(如果没有tmp这个文件目录也会出错)

   f2Move ("c:\\tmp\\testfiletxt");

   alert("Copying file to c:\\temp <br>");

   // 把文件复制到 \temp 目录

   if(!fsoFolderExists("c:\\temp")) {//如果temp目录不存在,则创建一个目录

        fsoCreateFolder("c:\\temp");

   }

   f2Copy ("c:\\temp\\testfiletxt");

   alert("Deleting files <br>");

   // 获得文件当前位置的句柄。

   f2 = fsoGetFile("c:\\tmp\\testfiletxt");

   f3 = fsoGetFile("c:\\temp\\testfiletxt");

   // 删除文件。

   f2Delete();

   f3Delete();

   //删除文件夹

   var fdTmp = fsoGetFolder("c:\\tmp");

   var fdTemp = fsoGetFolder("c:\\temp");

   fdTmpDeleteFolder();

   fdTempDeleteFolder();

   alert("All done!");

}

ManipFiles();

//CreateFile();

</script>

 以上是将内容保存在文件中。使用的是系统的文件对象,要求系统开启了以上activeX对象,并且有读写文件的权限。在动态网站中读写文件系统一般不需要使用JS的。aspnet/php/jsp都有相应的文件读写方法。

实现方法:

1、JS脚本为服务器控件赋值

语法:documentgetElementById('<%=服务器控件名ClientID%>')

documentgetElementById('<%=TextBox2ClientID%>‘)value= “aaaaa” ;

<anthem:TextBox ID= "TextBox2" runat= "server" Text= "bbbbb" >< /anthem:TextBox> //这个是anthem的控件,跟aspNet ajax框架的控件一样

//2、JS脚本为服务器中用户控件中的控件赋值

语法:documentgetElementById("<%=服务器控件名ClientID%>"+"_用户控件中控件名")

documentgetElementById( "<%=UserInfoControl1ClientID%>"+"_txtBAname" )value= “aaaaa” ;

页面使用的用户控件: <uc1:UserInfoControl ID= "UserInfoControl1" runat= "server" />

用户控件代码:

<anthem:TextBox ID="txtBAname" runat="server" Width="64px" CssClass="lankuang" ></anthem:TextBox>

2js为服务器控件Lable赋值的话,语法为:

documentgetElementById("<%=CaseControl1ClientID%>"+ "_lblZhusu" )innerHTML= "aaaaaaa" ;

但是由于label映射到客户端是Div标签,所以后台取的还是原来的值。

jsp在生成页面的时候已经初始化所有的变量,js只是在jsp往客户段输出的时候生成的,js是运行在客户端的,jsp是服务器端的。

要想把js的变量传个jsp,办法只有一个:在jsp在客户端生成页面后使用js给jsp的域即input赋值,放在form中再做一次提交。比如:

<form action="actionjsp" method="post" name="fm1" id="fm1">

<input type="hidden" id="inputTagName" name="inputTagName">

</form>

<script>

documentgetElementById("inputTagName")value="1234";

fm1submit();

</script>

这样您就可以在actionjsp页面中使用 requestgetParameter("inputTagName"); 获取变量值了。

首先:下载一个JS的日期组件,带封装。

然后:建一个日期类文件CalendarBoxcs代码如下:

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemText;

using SystemWeb;

using SystemDrawing;

using SystemWebUI;

using SystemWebUIWebControls;

using SystemWebUIHtmlControls;

[assembly: WebResource("WisesoftWebControlWisesoftCalendarcalendarjs", "application/x-javascript", PerformSubstitution=true)]

namespace WisesoftWebControl

{

[ToolboxBitmap(typeof(CalenderBox), "WisesoftCalendarCalendarBoxico")]

public class CalenderBox : TextBox

{

protected override void OnPreRender(EventArgs e)

{

string calendar = CalenderCSSCSS;

calendar = calendarReplace("$ImaginURL$", thisImaginURL);

if (!PageClientScriptIsClientScriptBlockRegistered("_calendar"))

PageClientScriptRegisterClientScriptBlock(typeof(string), "_calendar", calendar);

thisPagePreRenderComplete += new EventHandler(Page_PreRenderComplete);

thisCssClass = "Wdate";

thisAttributesAdd("onfocus","setday(this)");

thisAttributesAdd("onchange", "checkDate(thisvalue)");

baseOnPreRender(e);

}

void Page_PreRenderComplete(object sender, EventArgs e)

{

PageClientScriptRegisterClientScriptResource(thisGetType(), "WisesoftWebControlWisesoftCalendarcalendarjs");

}

///// <summary>

/// 弹出日期控件小的地址

/// </summary>

[Bindable(true)]

[Category("图标设置")]

[DefaultValue("imagin/calendergif")]

[Localizable(true)]

public string ImaginURL

{

get

{

String s = (String)ViewState["ImaginURL"];

return ((s == null) "imagin/calendergif" : s);

}

set

{

ViewState["ImaginURL"] = value;

}

}

///// <summary>

/// 设置日期,时间的初始格式。

/// </summary>

[Bindable(true)]

[Category("初始化设置")]

[DefaultValue(false)]

[Localizable(true)]

public bool ShowTime

{

get

{

bool s = (bool)ViewState["ShowTime"];

if (ViewState["ShowTime"] != null)

{

return s;

}

return false;

}

set

{

ViewState["ShowTime"] = value;

}

}

///// <summary>

/// 注样式文件

/// </summary>

/// <param name="path"></param>

private void RegisterCssFile(string path)

{

HtmlLink link1 = new HtmlLink();

link1Attributes["type"] = "text/css";

link1Attributes["rel"] = "stylesheet";

link1Attributes["href"] = path;

thisPageHeaderControlsAdd(link1);

}

}

}

注意:[assembly: WebResource("WisesoftWebControlWisesoftCalendarcalendarjs", "application/x-javascript", PerformSubstitution=true)]是用来封装你的JS文件,要使用你项目的名字加上你JS文件的名字,还需要将你的JS文件做一点设置,点右件,选择属性--->然后选择高级,选择生成操作-->选择嵌入的资源,这样才能将JS文件封装进去,当然如果有或者是CSS文件也是一样的。

再看

void Page_PreRenderComplete(object sender, EventArgs e)

{

PageClientScriptRegisterClientScriptResource(thisGetType(), "WisesoftWebControlWisesoftCalendarcalendarjs");

}

是在页面呈现之前将你的JS文件注册到页面上。

[Bindable(true)]

[Category("图标设置")]

[DefaultValue("imagin/calendergif")]

[Localizable(true)]

是利用反射的元数据信息,来设置属性。就是给你的日期控件旁边加上个小图标,把它做成一个属性,可以让程序员自定义设置,也可以把它继承进去。

好了,这样就可以把JS文件封装好了,再来看看CSS文件如何封装并写入客户端。

我们可以看见下面有一个方法,

///// <summary>

/// 注样式文件

/// </summary>

/// <param name="path"></param>

private void RegisterCssFile(string path)

{

HtmlLink link1 = new HtmlLink();

link1Attributes["type"] = "text/css";

link1Attributes["rel"] = "stylesheet";

link1Attributes["href"] = path;

thisPageHeaderControlsAdd(link1);

}

它就是用来注册你的CSS文件的,大家都知道在我们的页面代码里面是<link href="StyleSheetcss" rel="stylesheet" type="text/css" />引入外部样式文件。这个方法就是达到这个目的。那么我们现在还没有样式文件。

因此我们就必须建立一个CSS,然后把它设置一下(和JS的设置方式一样)。再到void Page_PreRenderComplete(object sender, EventArgs e)方法调用就可以了,但是还有其他方法,我们来介绍第二种(对JS文件也可以这样使用),建立一个CalendarCSScs文件,代码如下:

using System;

using SystemCollectionsGeneric;

using SystemText;

namespace WisesoftWebControl

{

public class CalenderCSS

{

public static string CSS = @"<style type=""text/css"">

Wdate{

border:#999 1px solid;

height:18px;

background:url($ImaginURL$) no-repeat right;

}

WdateFmtErr{

font-weight:bold;

color:red;

}

</style>";

}

}

这个类其实是将我们的CSS文件,写为一个字符串形式,然后供主函数调用,以注册到客户端使用。

那么我们再看看CalendarBoxcs文件里的这段代码

string calendar = CalenderCSSCSS;

calendar = calendarReplace("$ImaginURL$", thisImaginURL);

if (!PageClientScriptIsClientScriptBlockRegistered("_calendar"))

PageClientScriptRegisterClientScriptBlock(typeof(string), "_calendar", calendar);

它就是将我们已经写好的一段字符串以快的形式注册到客户端(当然还有更多的注册方式,可以在MSDN看看ClientScript类)。

好了,基本上就可以使用了。

是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。

Nodejs由Nodejs基金会持有和维护,并与Linux基金会有合作关系。Nodejs采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于数据密集的即时应用程序。

Nodejs大部分基本模块都用JavaScript语言编写。在Nodejs出现之前,JavaScript通常作为客户端程序设计语言使用,以JavaScript写出的程序常在用户的浏览器上运行。

Nodejs的出现使JavaScript也能用于服务端编程。Nodejs含有一系列内置模块,使得程序可以脱离Apache HTTP Server或IIS,作为独立服务器运行。

扩展资料

js的优点

Node作为一个新兴的前端框架,后台语言,有很多吸引人的地方:

RESTful API

单线程

Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Nodejs是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。

参考资料来源  -nodejs

  二者主要区别:

传统的页面是服务器端接收到客户端请求后,将数据和页面组装一起返回,之后如果有部分数据或部分页面要替换,可以使用ajax实现。

但在angularjs中,服务器端接收请求后,只是返回了母版页,客户端根据此母版页加载js和html,各个js框架会根据自己的语法渲染html;客户端请求的那个路径只会被请求一次,之后的逻辑和页面数据加载均由js完成(jsonp请求)。

我们在日常开发中,url在#之前的都是后端mvc的参数,#后面的是spa的路由和参数。

JSP与JavaScript(JavaScript的缩写就是js)之间的一些主要区别:

1、Java Server Pages是一种动态网页技术,而JavaScript是一种脚本语言,可以使静态HTML内容

成为动态。

2、Java Server Pages具有在HTML之间添加Java代码的scriptlet,而JavaScript具有许多内置

函数,可以使用基于面向对象编程模型中基于原型模式的继承的JavaScript对象来修改数据。

3、Java Server Pages具有JSTL支持以处理一些复杂的功能,而JavaScript具有不同的数据类

型,如Boolean,Number,String,Date,Math,HTML DOM和RegExp等,

4、Java Server Pages几乎支持所有Web浏览器,而JavaScript不支持跨浏览器功能,导致在

浏览器更改期间执行少量功能的失败导致不利。

5、Java Server Pages将通过Web服务器从后端呈现和提供,而JavaScript是一种脚本语言,

可以在客户端和服务器端使用,或者在浏览器端或客户端使用,其中代码将由内部编译。 

JavaScript内置编译器称为JIT编译器,然后它将在浏览器中解释,模块的执行稍后在客户端环

境(即浏览器)上发生。

6、Java Server Pages具有JSR规范,这是Oracle的标准,而JavaScript具有最新标准,称为

ES 9(ECMAScript标准),支持其编程模型中的高级功能方面和几个高阶函数。

7、Java Server Pages在开发复杂功能方面存在局限性,而JavaScript有一个标准规范,可以

使用JS强大的函数编程方面来操作复杂模块。

8、Java Server Pages在Web容器中具有JSP隐式对象功能,而JavaScript具有可通过使用let

关键字在ES 6标准中使用的提升功能。

9、Java Server Pages支持表达式语言(EL),它提供对Java对象中的函数和数据的访问,而

JavaScript具有隐式原型引用,用于引用JS对象中的数据。

10、Java Server Pages有JSP编译器,它将JSP转换为Servlet来解释网页内容和显示,而

JavaScript有Javascript解释器来解析称为Javascript引擎的代码。

扩展资料:

JavaScript的优点

1、速度。客户端JavaScript非常快,因为它可以在客户端浏览器中立即运行。除非需要外部资

源,否则JavaScript不会受到后端服务器的网络调用的阻碍。它也没有必要在客户端编译,这

给了它一定的速度优势(授予,增加一些风险取决于所开发代码的质量)。

2、简单。JavaScript的学习和实现相对简单。

3、人气。JavaScript在Web中随处可用。学习JavaScript的资源很多。StackOverflow和

GitHub有许多使用Javascript的项目,并且语言作为一个整体近年来在业界获得了很大的关

注,尤其是。

4、互操作性。JavaScript可以很好地与其他语言一起使用,并且可以在各种各样的应用程序中

使用。与PHP或SSI脚本不同,JavaScript可以插入任何网页,无论文件扩展名如何。

JavaScript也可以在用其他语言编写的脚本中使用,例如Perl和PHP。

5、服务器负载。客户端减少了对网站服务器的需求。

6、丰富的接口。拖放组件或滑块可为您的网站提供丰富的界面。

7、扩展功能。像Greasemonkey这样的第三方附加组件使JavaScript开发人员能够编写可以在

所需网页上执行以扩展其功能的JavaScript代码片段。

8、多功能性。如今,有许多方法可以通过Nodejs服务器使用JavaScript。如果您使用

Express引导nodejs,使用像mongodb这样的文档数据库,并在前端为客户端使用

JavaScript,则可以仅使用JavaScript从前到后开发整个JavaScript应用程序。

学程序要敢于尝试,通常我们都会用JS来验证客户端控件,但总有人不去尝试JS去验证服务器控件,也说明你没有真正学好JS,C#转译,HTML的DOM模型,这些东西。假设你页面中现在有一个listbox名字叫listTypeInfo,就算它是一个服务器控件,通过执行后的HTML源代码,可以看到它的ID为listTypeInfo,现在用JS验证如果它没有被选中就点击删除按钮,先提示要选中,选中之后提示“是否确认”

让你的面面中的button的onclientclick事件中调用这段JS:

<script language="javascript" type="text/javascript">

function IsOK()

{

var a=0;

var listType=documentgetElementById("listTypeInfo");

for( i = 0; i <listTypeoptionslength; i++)

{

if(listTypeoptions[i]selected)

{

a=1;

}

}

if(a==0)

{

alert("请选择要删除的选项");

return false;

}

if(a==1)

{

return confirm ("确认吗?");

}

}

</script>

这样就能按顺序执行你想要的效果了,当前后JS通过,就会执行你按钮的click事件中的后台的删 除代码。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » js如何把数据保存到服务器端,用文件系统

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情