location.assign(location.search方法)

大家好,关于location.assign很多朋友都还不太明白,今天小编就来为大家分享关于location.search方法的知识,希望对各位有所帮助!

在网页编程的世界里,有时候我们需要跳转到不同的页面,这时候,“location.assign”就成了我们的秘密武器。它简单、实用,而且功能强大。今天,我们就来一起探索一下这个神秘的功能吧!

一、location.assign的简介

location.assign 是JavaScript中window对象的一个方法,用于在当前窗口中加载指定的URL,并且将当前URL设置为新的URL。简单来说,就是用来实现页面跳转的。

二、location.assign的用法

使用location.assign非常简单,语法如下:

“`javascript

window.location.assign(url);

“`

其中,`url`就是要跳转到的地址。

示例

“`javascript

window.location.assign(‘http://www.example.com’);

“`

上面的代码会将页面跳转到“http://www.example.com”。

三、location.assign的特性

1. 跳转页面:最基本的功能,就是实现页面的跳转。

2. 保存历史记录:使用location.assign跳转后,浏览器会将当前页面添加到历史记录中,用户可以通过浏览器的后退按钮返回到之前页面。

3. 无刷新跳转:使用location.assign跳转时,不会进行页面刷新,只是将页面地址栏的内容替换成新的URL。

四、location.assign与location.href的区别

有时候,我们会遇到这样的情况:在代码中既使用了location.assign,又使用了location.href,那么它们之间有什么区别呢?

方法 描述
location.assign 用来在当前窗口中加载指定的URL,并且将当前URL设置为新的URL。
location.href 获取或设置当前窗口的URL。

区别

1. 功能location.assign 用于跳转页面,并保存历史记录;而location.href 只用于获取或设置URL,不保存历史记录。

2. 刷新:使用location.assign 跳转页面时,不会刷新页面;而使用location.href 设置URL时,如果当前页面没有加载完成,将会刷新页面。

示例

“`javascript

// 使用location.assign跳转页面,不会刷新页面

window.location.assign(‘http://www.example.com’);

// 使用location.href设置URL,如果页面未加载完成,将会刷新页面

window.location.href = ‘http://www.example.com’;

“`

五、location.assign的应用场景

1. 单页面应用(SPA):在SPA中,使用location.assign 可以实现页面之间的跳转,同时保持路由状态。

2. 网页链接跳转:在网页中,我们可以使用location.assign 实现链接的跳转。

3. 表单提交:在表单提交时,我们可以使用location.assign 实现页面跳转。

location.assign 是一个功能强大且实用的网页跳转方法。它简单易用,而且具有许多特性,如跳转页面、保存历史记录等。在网页编程中,合理运用location.assign,可以提升用户体验,使页面更加流畅。

以上就是关于location.assign的介绍,希望对大家有所帮助。在编程过程中,如果遇到跳转问题,不妨试试这个神秘武器吧!

retain和strong,assign和weak的区别

  strong与weak是由ARC新引入的对象变量属性

  xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的。xcode 4.3(ios5和以上版本)之后就有了ARC,并且开始使用

  strong与weak

  assign:用于非指针变量。用于

  基础数据类型(例如NSInteger)和C数据类型(int, float, double, char,等),另外还有id

  如:

  @property(nonatomic, assign) int number;

  @property(nonatomic, assign) id className;//id必须用assign

  反正记住:前面不需要加“*”的就用assign吧

  retain:用于指针变量。就是说你定义了一个变量,然后这个变量在程序的运行过程中会被更改,并且影响到其他方法。一般是用于字符串( NSString,NSMutableString),数组(NSMutableArray,NSArray),字典对象,视图对象(UIView),控制器对象(UIViewController)等

  比如:

  @property(nonatomic,retain) NSString* myString;

  @property(nonatomic, retain) UIView* myView;

  @property(nonatomic, retain) UIViewController* myViewController;

  xcode 4.2不支持ARC,所以会频繁使用retain来修饰,用完释放掉,而xcode4.3支持ARC,可以使用retian,不需要手动释放内存,系统会自动为你完成,如果你在xcode4.3上面开发,retian和strong都是一样的,没区别

  strong和weak:

  事实上

  @property(nonatomic,strong) MyClass*myObject;就是相当于@property(nonatomic,retain) MyClass*myObject;@property(nonatomic, weak)id<RNNewsFeedCellDelegate>delegate;就是相当于@property(nonatomic,assign)id<RNNewsFeedCellDelegate>delegate;

  现在系统自动生成的属性都是用weak来修饰的,我想应该是xcode 4.2不支持ARC,所以大家都是用retain。现在xcode4.3支持ARC了,于是苹果建议程序员放弃retain,以后都用weak。

  weak就是相当于assign,同样可以在xcode4.3开发环境下放弃使用assign使用weak来代替

  unsafe_unretained

  unsafe_unretained就是ios5版本以下的 assign,也就是 unsafe_unretained, weak, assign三个都是一个样的。因为 ios5用的是 weak,那在ios4.3就用不了,如果你将 weak修改为 unsafe_unretained,那就可以用了。说到底就是iOS 5之前的系统用该属性代替 weak来使用。

  copy:这个东西估计是大部分人最不容易搞明白的东西,我也搞不明白。听别人说这个东西基本不用了,效果其实和retain没什么两样,唯一的区别就是copy只用于NSString而不能用于NSMutableString。

  不过好像当一个类继承NSObject,那么这个类里面的属性需要使用copy,比如:

  #import<Foundation/Foundation.h>

  #import<MapKit/MKAnnotation.h>

  @interface Annotation: NSObject<MKAnnotation>{

  

  CLLocationCoordinate2D coordinate;

  NSString*title;

  NSString*subtitle;

  }

  @property(nonatomic) CLLocationCoordinate2D coordinate;

  @property(nonatomic, copy) NSString*title;

  @property(nonatomic, copy) NSString*subtitle;

  @end

  反正以后就这么用就是了

  反正就记住一点:xcode4.2用retain和assign;xcode4.3或以上版本用strong与weak。

js 页面刷新location.reload和location.replace的区别小结

reload方法,该方法强迫浏览器刷新当前页面。

语法: location.reload([bForceGet])

参数: bForceGet,可选参数,默认为 false,从客户端缓存里取当前页。true,则以 GET方式,从服务端取最新的页面,相当于客户端点击 F5(“刷新”)

replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。

语法: location.replace(URL)

在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload()或者是 history.go(0)来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method=”post”的时候,会出现“网页过期”的提示。那是因为Session的安全保护机制。可以想到:当调用 location.reload()方法的时候, aspx页面此时在服务端内存里已经存在,因此必定是 IsPostback的。如果有这种应用:我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建,我们期望是 Not IsPostback的。这里,location.replace()就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: location.replace(location.href)

replace函数在设置URL方面与location的href属性或assign函数完全一样,但是它会删除history对象的地址列表中的URL,从而使go或back等函数无法导航。

示例

<inputtype=”button”value=”点击按钮定位到百度”onclick=”location.replace('http://

www.baidu.com/');”>

Javaweb的跳转问题

通俗来说,form表单是写在前端页面(如html、jsp)上的,<form>有一个‘action’的参数,这里需要填写目标地址,如果不填写的话客户端是不知道往哪里发送信息的,因此form是由客户端主动发送给服务器(具体的地址就是action索要填的值)的。这属于客户端向服务器发起请求,代码表现为:

<form

action='10086.jsp' method='get'>

…………

</form>

就像你打10086,你问问题(提交表单),客服(服务器)会根据你的问题(form)反馈答案。同理,正常来说,后台接收到前端发来的信息后,会进行一系列操作,最后发送结果回去。

====分割线====

而转发和重定向的代码是写在后台代码里的,因为并不是所有的业务都由同一个后台页面处理(例如统一管理平台),前端form填的是页面A,但实际上页面A在接收到form后并不进行处理,而是通过转发或者重定向的方式,发送给页面B,页面B处理后会把结果发送给A,然后A再反馈给前端。因此,这属于服务器向服务器发起请求

转发的代码是request.getrequestdispatcher(10086-2.jsp).forward(request,response),特点是url不会变,客户端无法判断是form表单的后台页面在处理还是别的页面在处理(你在浏览器上是无法知道10086-2.jsp这个页面的存在)。就像10086客户有时候会让你稍等,等待期间你是不知道他是在敲电脑还是找外援寻求答案。

重定向的代码是response.sendRedirect(“10086-2.jsp”),特点是url会变。浏览器的地址栏会明显看到地址发生改变。就像10086客服告诉你该问题不是他负责的范围,然后帮你转接到其他相应的客户。

至于怎么判断啥时候使用转发,啥时候使用重定向,还请理解jsp的四大作用域之后再回头思考。

location.assign和location.search方法的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享