怎么通过js 事件,停掉当前正在运行的js函数,不是在正在运行的函数中停止,是在另外一个事件中停止

JavaScript013

怎么通过js 事件,停掉当前正在运行的js函数,不是在正在运行的函数中停止,是在另外一个事件中停止,第1张

1、新建一个html文件,命名为test.html。

2、在test.html文件内,在p标签内,使用input标签创建两个数字输入框,并分别设置其id为num1,num2,主要用于下面通过该id获得input对象。

3、在test.html文件内,使用button标签创建一个按钮,按钮名称为“相加”。

4、在test.html文件中,给button按钮绑定onclick点击事件,当按钮被点击时,执行numsum()函数。

5、在js标签中,创建一个名称为jia()的函数,它的参数分别为a和b,在函数内,通过return返回a参数与b参数相加后的值。

6、在js标签中,再创建一个numsum()函数,在函数内,使用getElementById()通过id获得input对象,并使用value属性获得输入的数字,然后调用jia()函数,并将num1和num2两个值传递给jia()函数进行相加,最后,使用alert()方法输出相加的结果。

1、如果终止一个函数的用return即可,实例如下:

function testA(){

    alert('a')

    return

    alert('b')

    alert('c')

}

testA()

程序执行弹出'a'便会终止。

2、在函数中调用别的函数,在被调用函数终止的同时也希望调用的函数终止,实例如下:

function testC(){

    alert('c')    

    return false    

    alert('cc')

}

function testD(){

    if(!testC()) return

    alert('d')

}

testD()

两个函数做了修改,testC中返回false,testD中对testC的返回值做了判断,这样终止testC的同时也能将testD终止,程序执行弹出'c'便会终止。

停止方法:

1.首先,不能共享完毕之后,都通过Ctrl+C来关闭NodeJS服务器。

2.其次,如果仅仅能向客户端提供d:\ilinkit_logo.png文件的下载,是没有意义的,共享哪个文件,应该可以通过传入的参数来指定。我们首先来实现退出功能,如果客户端向服务器提交了http://localhost:8000/exit的请求,我们就执行服务器的退出操作。

代码如下:

1 var http = require( 'http' )

2 var fs = require('fs')

3 var url = require( 'url' )

4  (空行)

5 var file_path = "D:\\ilinkit_logo.png"

6 var file_stream

7 var buffer_box = []

8 var file_length = 0

9 (空行)

10 var file_name = file_path.substr( file_path.lastIndexOf('\\')+1 )

关键的代码解析如下:

第33行,我们通过request对象获取客户端请求的主机及端口内容。

第46行~第50行,我们判断客户端提交的请求信息,如果是http://localhost:8000/exit,则调用server.close()关闭服务器。为什么要判断是不是localhost提交的请求?因为我们希望仅仅在服务器本地提交的请求才能关闭NodeJS服务器。

验证方式如下:

1. 启动服务器:打开命令行,进入js脚本所在的位置,执行:node h_ilinkit_1.js。

2. 打开浏览器,输入:http://localhost:8000,显示如下:

说明当前服务器启动正常。

3. 打开浏览器,输入:http://localhost:8000/exit。

提示NodeJS服务器已经关闭,我们把浏览器关闭之后,发现服务器已经正常退出,如下所示。

这样,我们就没必要每次为了退出服务器,都去按Ctrl + C了。