大家好,关于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方法的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!




