js的全局变量 多个客户端同时访问该页面他们是共享一个全局变量么?请大神给个原因,希望回答的透彻点

JavaScript016

js的全局变量 多个客户端同时访问该页面他们是共享一个全局变量么?请大神给个原因,希望回答的透彻点,第1张

没有共享一个全局变量,js所谓的全局变量指的是在页面下,作用范围是window区域,是一个页面里面的。当每一个用户打开一个页面,每一个页面都加载运行这段代码,他们的电脑不互相干扰。而你的迷惑之处在于把js的全局变量与后台语言的全局变量搞混淆。后台语言的全局变量是在服务器运行的,服务器只有一个,而且处于不中断运行状态,所有用户都需要访问同一个服务器,服务器里面的全局变量是共享的,这个需要去多了解一下服务器的程序加载运行过程和堆栈的分配。而js是由服务器传送到用户电脑上才开始被客户端加载运行。两个完全不同的机制。你完全可以打开同一个页面关闭,再打开不就知道答案了吗?何必如此多问?

是的他们没有全局变量之说。但有别的办法可以实现。

只有当文件可同时访问定义在一个页面内的main.js,才可实现同一个变量的共享

若1.html,2.html存在父子窗口关系,即其中一个是另一个open出来的,

则可以通过opener或window.dialogArguments在访问同一个页面main.js内定义的变量,即可实现所谓的共享。

如果彼此不能共享一个页面里的main.js,则无法互相访问。

如果不考虑服务器脚本端,比如php,asp,jsp这样的环境的话,单纯用js来完成的话可以将js代码用js文件来保存,然后在要用的页面导入这个js就行了,这也是一种共享代码的方法,也便于管理。当然你还要在第一个有click事件的js脚本文件中设一个全局变量来作为中间变量,在click事件中将要用的局部变量赋值给全局变量,然后在另一个页面使用那个全局变量就行了。而要是用php,asp,或者jsp来实现的话可以利用URL参数来实现。比如_GET,_POST_SESSION等可以用来共享整个网站里面的数据段。不过应该还是前面说的那个js你比较熟悉。希望采纳