深入浅析JavaScript中数据共享和数据传递.docx深入浅析JavaScript中数据共享和数据传递这篇文章主要介绍了深入浅析JavaScript中数据共享和数据传递的相关资料,需要的朋友可以参考下数据共享和数据传递是相辅相成的,我们一起来讨论这个问题。首先要说的是共享和传递都是有作用域的。作用域就是起作用的区域,在同一个作用域数据可以共享,超过这个作用域就是跨作用域,就得用到数据传递了。。他们作为一个闭合的作用域。;不同的ui文件可以定义相同id的组件。。page作用域每次调用openPage都会打开一个新的page,这个新的page会盖在旧的page之上,closePage关闭自己后就会露出被盖住的旧的pageo每一个page里除了主ui文件以外,还可以包含其它很多ui文件,这些ui文件在同一个page作用域。当page关闭的时候,所有在page里构建的对象都会释放。app作用域这个是最大的作用域,只要app没有退出,这个作用域就一直有效。,因为它不属于任何page。总之,app作用域包含多个page作用域,page作用域包含多个ui作用域。内存共享相对文件和数据库,内存操作的速度快很多,适合于比较少的数据量操作。缺点就是app关闭后就释放了。deviceone通过以下几种方式来共享内存。do_Global的memory操作(app作用域)这个是app作用域的数据分享。这一块内存其实就是一个键值对,一个key对应一个value,所以要注意如果对一个key重新赋值,就会把以前的value覆盖。使用方法很简单。参考以下的示例,读和写分别在不同的pageo//,可以设置为任何json对象,函数对象例外。global,setMemory(,zkeyl",1);("key2","valuel");global,setMemory("key3",["a","b","c"]);("key4",{V〃 〃V〃kl:vl,〃k2〃:〃v2〃,〃k3〃:〃v3〃,〃k4〃:〃v4〃});varlabel=ui(〃do_Label_2〃);//在memory/,可直接返回json对象varglobal二sm(〃do_Global〃);varcontent={};content・keyl=(/zkeyl〃);=(〃key2〃);content・key3_2=(〃key3〃)[1];content・key4_k3=(z,key4z,)[〃k3〃];(content,null,2);//格式化Javascript的全局变量(page作用域)利用JavaScript自身的特性定义全局变量,通常可以定义全局变量来实现同一page下不同ui文件里的数据分享。参考以下的示例,读和写分别在不同的ui文件,但是是在一个page作用域。使用也非常简单,有二种方式:虽然很方便,但并不推荐使用,因为使用太随意,如果是协作开发或复杂的项目,如果碰见bug,很难定位和调试。//,二种方式。//,keyl=//value1〃;//・key2={kl:vl,徐3〃:〃v3〃,4〃:/zv4//,二种方式。varcontent={};content・keyl=keyl;=[〃k3〃];Javascript的变量(ui作用域)这个不用太多解释,就是正常的JS变量定义,。varkeyl=//valuel〃;sqlite的内存模式sqlite通常是文件模式,有一种特殊的情况可以直接在内存里使用sqlite,适用于数据结构比较复杂,文本操作麻烦的方式,利用sql语句操作会灵活得多。内存模式只能有一个,名字固定为\:memory\:.在后面sqlite数据库介绍的地方再详细介绍。文件共享这个大家很好理解,文件共享是app作用域的,而且app重启后也可以访问。可以通过do_Storage组件在app的任何地方把内容写入一个文件,然后在另外一个地方读一个文件把
深入浅析JavaScript中数据共享和数据传递 来自淘豆网m.daumloan.com转载请标明出处.