几道面试题
在参加面试过程中曾被问到以下问题,当时回答得并不好,回来查了下资料,
Q:What are the differences between "stored procedure" and "function"?
A:The main defferences are:
1) function must have a return value, while stored procedure may or may not have a return value.
2) Function can return only a single value at a time while procedure can return none, one, or many;
3) Function can be called from sql statements while procedures can't.
e.g. select * from functionName();
Q:数据库中有一个表UploadFiles,表中有一个字段叫FilePath,类型为Varchar,现在要求写一个sql语句,批量将FilePath字段中的“http”替换为“http”?
A:update UploadFiles set FilePath=replace(FilePath, 'https', 'http');
注:当字段类型为text或者ntext的时候执行上述sql语句会报错,需要先将字段转换,然后执行,如: update UploadFiles set FilePath=replace(cast(FilePath as varchar(8000)), 'https', 'http'); replace函数在MySQL中也同样支持;
Q:实现多语言的网站时,内容如何实现多语言?
A:UI界面的多语言在.Net中可以采用使用资源文件保存描述的方式, 对于内容的多语言可以每一种语言对应一个子域名或者virtual directory的方式,在对应的子系统中去维护不同语言对应的内容。
Q:除了Ajax之外,有没有其它方法实现局部刷新?
A:只想到了Iframe或者frame,还有其它办法??。
Q:在Asp.net应用程序中,在服务器端能够获取客户端浏览器信息吗?
A:当然可以了, http请求中就包含有丰富的客户端信息,具体是使用Asp.net的Request对象即可。
Q:设计一个接口,用来获取浏览器的信息?
Q:举几个IE跟Firefox之间区别的例子?
A:不太明白,是IE跟firefox软件本身的区别还是IE跟firefox在解析web page的时候的区别,我理解应该是后者。主要可以从两个方面去考虑:
1)两种浏览器在css解析方面的区别;
a) 简单举几个例子:FireFox(简称FF)与IE在对BOX(盒子模式)的解析上有些不同,在设置了padding后,FF在计算盒子的宽度或者高度时会将padding值计算进去,但是IE不会;
b) FF可以识别"!important",IE会忽略该标记;
c) FF中都支持cursor:pointer; 但是cursor:hand;只有IE支持;
d) ul标签在FF中padding有默认值,在IE中只有margin有默认值;
e) FF与IE对空格的解析也不同;
2)两种浏览器对js支持上的区别;
a) document.all只有IE支持, document.Forms["itemID"]或者document.getElementById("itemID")是FF与IE都支持的;
b) frame: IE中可以通过window.frameName或者window.frameID的方式来访问,在FF中只可以使用window.frameName的方式来访问;
c) IE支持showModalDialog及showModallessDialog方法,FF不支持;
还有许多其它方面的不同。
Q:有什么方法保证页面内容在IE以及Firefox下表现一致?
A:解决兼容性问题的思路主要有两个,一是使用符合W3C标准的CSS、html及javascript,二是为不同的浏览器的不同版本编写有针对性的css及javascript代码;
例如对于上一个问题中提到的FF与IE中对BOX在解析上的不同,在设置宽宽度时可以这些编写css: width:180px !important; 使用cursor:pointer;代替 cursor:hand;
始终使用document.getElementById来获取对象;
同时可以使用javascript代码来检测浏览器的型号及版本号:
详见:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html
判断浏览器的类型及版本号的基本思想就是根据各个浏览器独有的属性或者分析浏览器的userAgent(通过navigator.userAgent进行获取)属性来进行判断;
Q:使用C++ STL现场上机编程调试?