今天的笔试题

WBOY
WBOYasal
2016-06-23 14:19:07876semak imbas

本帖最后由 bing15 于 2013-08-05 18:13:37 编辑

1.在一个订单系统购物中,系统可能会因为网络比较慢,造成客户多次点击提交,有什么好的解决方案。

2.在一维的数组中,数据类型是整型,使用冒泡排序算法进行从小到大的排序。

3.你是否使用过事务处理,请最少写出3个事务处理的函数。

4.请遍历出一个文件夹下的所有文件及子文件夹的函数。



回复讨论(解决方案)

1.点击后先使按钮不可点,提示:"正在提交...",直到返回结果后再恢复.

2.略

3.没用过..

4. ....这个真没用过

汗 面试不上的节奏

都是比较基础的题,没什么太多可说的。
1. 点击一次提交后 提交按钮置灰(不可点),几秒后恢复(或者相应的回调函数),不仅可以防止重复提交,而且防止由于大量重复提交对服务器的冲击。

4. 递归处理之。需要注意的是如果是linux系统,要避免对. 和.. 目录的重复循环搜索。

没人写第二个,那我就写第二个吧

function maopao($arr){ $len = count($arr); for($i=1; $i<$len; $i++)//最多做n-1趟排序 {  $flag = false;    //本趟排序开始前,交换标志应为假  for($j=$len-1;$j>=$i;$j--)  {   if($arr[$j]<$arr[$j-1])//交换记录   {//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了     $x=$arr[$j];     $arr[$j]=$arr[$j-1];     $arr[$j-1]=$x;     $flag = true;//发生了交换,故将交换标志置为真   }  }  if(! $flag)//本趟排序未发生交换,提前终止算法  return $arr;    }}$shuz = array('2','4','1','8','5');$bb = maopao($shuz);print_r($bb);

适合我的水平,我喜欢。

3.事物处理几个点
首先数据引擎要是innoDB

事物处理就是把一堆sql命令放到一起来执行,所有sql语句都执行成功,那么这次事物就是成功的,就可以提交了
如果有sql命令没有成功,那么这次事物就是失败的,所以可以调用rollback方法把前面的操作全部撤销;

事物处理的过程
首先开启事物
set autocommit=0;
.....
sql
....
if(true)
commit();
else
rollback();

function travelPath(&$fileItem,$path) {
if(file_exists($path)) {
if(is_dir($path)) {
if($handle = opendir($path)) {
foreach ($item as $handle) {
if($item == '.' || $item == '..')
return ;
if(!is_dir($item)) {
$fileItem[] = $item;
return;
}

travelPath($fileItem, $item);
}
}
}
}
}

适合我的水平,我喜欢。

1.点击后先使按钮不可点,提示:"正在提交...",直到返回结果后再恢复.

2.略

3.没用过..

4. ....这个真没用过

汗 面试不上的节奏
人家都说网络慢了,还正在提交。正在提交都不显示。

我觉得用表单令牌。可以阻止重复提交。

我觉得用表单令牌。可以阻止重复提交。

那在漫长的等待过程中给用户传达什么信息呢? 再点没反应? 还真不如我说这个,点了先改成"正在提交中..."然后去提交,收到结果再改回来

php面试都要这样吗?那我还是再学学吧!


我觉得用表单令牌。可以阻止重复提交。

那在漫长的等待过程中给用户传达什么信息呢? 再点没反应? 还真不如我说这个,点了先改成"正在提交中..."然后去提交,收到结果再改回来
我说的是能真在的阻止重复提交,而你的不一定,如果网络不通的话,表单的页面是不会变的,自然也不会改在自在提交。再说,如果你说你用的是JS变的,那我告诉你如果没人把JS去了怎么样,人家可以一直提交对不对?你不要说用户不会这么做,那我告诉你如果是黑客这么做你怎么办?



我觉得用表单令牌。可以阻止重复提交。

那在漫长的等待过程中给用户传达什么信息呢? 再点没反应? 还真不如我说这个,点了先改成"正在提交中..."然后去提交,收到结果再改回来
我说的是能真在的阻止重复提交,而你的不一定,如果网络不通的话,表单的页面是不会变的,自然也不会改在自在提交。再说,如果你说你用的是JS变的,那我告诉你如果没人把JS去了怎么样,人家可以一直提交对不对?你不要说用户不会这么做,那我告诉你如果是黑客这么做你怎么办?

表单令牌是有用的.但是请注意楼主的条件" 网络比较慢造成多次提交",这种情况下,可能表单令牌还没有进行匹配和失效,用户就已经多次点击提交按钮了,所以用JS来控制比较合适.
而且,这两者并不冲突 可以都用.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn