zoukankan      html  css  js  c++  java
  • js中window对象详解以及页面跳转

    1.window.top.window.location = "index.asp";

    2.window.top.location.href="index.asp"

    3. window.top.location.replace("index.asp");

    4. window.navigate("index.asp"); 

    5.windows.open() //新窗口JS脚本可以用 windows.parent指向前一个窗体的引用访问前一个窗口的属性和方法;

    6. window.history.go(-2);//这个速度最快,从本地缓存中读取。但页面数据可能不是最新

    history.go(-1), 

    history.back().

    window.history.forward()

    ... ... 详细history实现方法参见博文< js页面跳转 和 js打开新窗口方法>【http://blog.csdn.net/Henry_YQH/article/details/8530711】

    ------------------------------------

    先解释前缀属性:

    window:每个浏览器窗口及窗口框架都是由window对象表示的;应用程序中每个窗口都会创建一个window对象,为JS创建了一个独立的执行环境,其中包含的重要属性document

    (文档显示结构),location(地址属性),frames[ ](表单数组), history(历史记录), screen, navigator(浏览器属性), top(最外层框架), parent(上一层框架), self, window(自引用属性)

     ps: 默认代表的就是他的window属性; 所以应该可以省略掉window关键字,我们的使用中就很少出现window关键字;

    location:窗口的location属性是一个Location对象,代表当前显示文档的URL;

    locaiton的href属性是一个字符串,包含完整的URL,其他属性protocol, host, pathname和search(?之后的部分)等则分别声明了URL的各个部分;直接取location的值实际取到的就是它的href一样的值,因为它自带了一个toString()方法;

    可以把一个URL字符串直接复制给loation对象,作用是引起浏览器装载这个URL页面的内容,但是location对象本身并没有一种方法可以用一个URL替换;但是js1.1之后有两种方法:reload()会从webserver重新装载当前界面;replace()会装载并显示指定的URL;但是为给定URL调用replace和把一个URL赋值给窗口的location不同,当调用replace时,指定的URL会替换浏览器历史中的当前URL,而不是在历史列表中创建一个新条目,如果用浏览器上的back按钮,就可能无法回到原始文档。

    PS.个人使用中发现,起码在chrome浏览器中,给location赋值和给location的href赋值,实现是有区别的,给location赋值,浏览器可能会做更多资源释放的动作(具体问题个人博客赘述: http://blog.csdn.net/mrvinc/article/details/9733281)

    ---------------------------------------

    另外还有一些服务器实现方法:

    Response.Redirect()
    这个的工作原理就是:客户端输入url,向服务器发一次请求,访问到服务器,然后服务器响应返回一个跳转的url到客户端,然后浏览重定向(302),再像服务器发送一次请求,然后服务器根据请求,响应操作。实现这个过程中间访问了两次服务器,访问是有时间的所以这个比较耗时间。
    这个后台使用的跳转方法实际上跳转效率稍微低点,因为需要和服务器两次交互才到目的页面。

    Server.Transfer()
    这个的工作原理就是:客户端输入url,向服务器发一次请求,访问到服务器,然后服务器响看你要访问一个新得url,直接从服务器跳转访问,返回你想要显示的。中间就访问了一次服务器,浏览器的地址不发生改变。

     window.showModalDialog()打开子窗口方法;


  • 相关阅读:
    LeetCode 977 有序数组的平方
    LeetCode 24 两两交换链表中的节点
    LeetCode 416 分割等和子集
    LeetCode 142 环形链表II
    LeetCode 106 从中序与后序遍历序列构造二叉树
    LeetCode 637 二叉树的层平均值
    LeetCode 117 填充每个节点的下一个右侧节点
    LeetCode 75 颜色分类
    redhat 7.4 挂载ntfs格式的u盘并且使用
    redhat 查看CPU frequency scaling(CPU频率缩放)
  • 原文地址:https://www.cnblogs.com/peijie-tech/p/3456033.html
Copyright © 2011-2022 走看看