向论坛里的神人请教问题,1、锚标功能是如何实现的?专业描述:当用户对页面特定区域进行复杂操作之后,页面能够返回到原来触策动作的位置,免得从头再翻。这个问题我挺想知道的,但百度无所得,我暂时浮浅的认识到捕捉鼠标焦点也许不对,因为触屏系统里没有鼠标焦点,但同样实现了这个功能。2、网页查找关键字,并且高亮关键字。我略微明白如何查找关键字,但是如何让关键字高亮就有点无所得了
3、服务器拦截文件上传是什么原理?是拒绝post么?可是页面的普通请求不是post方式的么?
   网盘无法上传文件、图片,为什么博客园发博文可以上传图片?这其中原理难道不是一样的么?
   文件以二进制流在网络中传输,那么服务器则么知道我此次上传的是文件呢,而不是普通文字,4、公交车站的,最近一班车5分钟后到站是什么原理呢,利用波控制么?而比如234号车,在路上可能有有两辆的,又是如何区别呢?5、火车票售票程序是如何设计的呢?感觉很复杂呀,区间车,全程车,我浮浅的认为是0/1代表一个区间,可,那样京广线之类的不是字段超级长?
 几个问题,在知道发过,但是无人回答,无法满足我的好奇心呀。也不知道发在哪个版块,如果不对,请见谅,每个问题回答,我觉得是真理的都会分别给分的,请大牛们给小弟解答疑惑啊,万谢~

解决方案 »

  1.   

    2、网页查找关键字,并且高亮关键字。我略微明白如何查找关键字,但是如何让关键字高亮就有点无所得了
    你说你知道如何查找关键字了,那高完就是一个替换。比如:将 关键字 替换成 <span style="color:red">关键字</span>3:<form …… enctype="multipart/form-data"> 这个multipart/form-data应该就是一个条件了
      

  2.   

    这种打包式的问题帖,不如拆开一一问,放一块,很多人嫌麻烦就不会管了。1、锚标功能是如何实现的?
     这个至少有“通过JS变量记录坐标”和“插入锚点对象”两种方法。
     前者是在转换操作区域时,先通过函数,提取一下当前的document.body.scrollTop和document.body.scrollLeft(多浏览器兼容的写法,有必要的话就自己搜一下,这里不占地方了),存在JS变量中。当需要转回原来的位置时,把变量赋回给document.body.scrollTop和document.body.scrollLeft就可以了。
     后者是在转换操作区域时,先创建一个临时锚点对象<a href="#回到这来" id="转回去"></a>,没有显示内容,所以外表看不出有变化。当需要转回原来位置时,用JS写两句:document.getElementById("转回去").click();document.getElementById("转回去").remove();就可以了。后一句是删除这个临时对象,以供下次再插入它。
     如果要建立位置书签机制,维护多个锚点位置的话,这两种方法也都可以使用,只是把单个变量变成数组,把一个唯一的ID对象变成一系列的ID对象。2、网页查找关键字,并且高亮关键字。我略微明白如何查找关键字,但是如何让关键字高亮就有点无所得了
     这个说得不太清楚。如果是让用户在页面内查找,不必你写,用户按CTRL+F调用浏览器的查找功能就行了,自带高亮功能。如果是你想用后台程序来控制返回的页面或前台JS来控制当前页面中的某些内容颜色变化,可以用楼上说的方法进行替换。如果你是用正则查找的,就用正则替换,实际上你根本不用二遍事,直接对所有待查找对象进行替换操作即可,如果有就会被替换,没有就原样不变。3、服务器拦截文件上传是什么原理?是拒绝post么?可是页面的普通请求不是post方式的么?
      网盘无法上传文件、图片,为什么博客园发博文可以上传图片?这其中原理难道不是一样的么?
      文件以二进制流在网络中传输,那么服务器则么知道我此次上传的是文件呢,而不是普通文字, 楼主对基本知识掌握不够啊。FORM默认的EncType就是文本型的,所以平时无论是GET,还是POST,都是按照文本内容来接收处理的。上传文件的<INPUT TYPE="FILE">必须设置enctype="multipart/form-data">,FORM的Action可指明后台接收处理的程序文件。这样的话,文本内容对应的后台接收处理程序自然只当作文本内容处理,而上传文件所对应的后台接收处理程序就把接收的数据当作文件处理。这根本不用判断。
     至于看起来象是同时上传文字和图片的博文发表,其实是分两部分的,一部分是上传文字内容,一部分是上传文件内容,两部分还是不同的后台处理程序分别处理的。但一个FORM只能向一个ACTION提交,如何能同时发起两个不同目标的提交呢?这就有多种技巧方法了,如AJAX和IFRAME等。说来话长(谁叫你一帖问这么多问题呢),自己去找相关资料吧。4、公交车站的,最近一班车5分钟后到站是什么原理呢,利用波控制么?而比如234号车,在路上可能有两辆的,又是如何区别呢? 这个就因地制宜了。很多地方是在车上装GPS定位仪,也有的地方(主要是以前的系统)是用公交专用的无线通讯控制系统(比如司机每到一站都按一下某种操作面板上的一个按钮,就是向系统总部通知自己已到站程表里的一站了,相当于站程表数组里的那个索引值)。这种事,你给人家机构进行开发时,自然就会被告知具体的方式和方法,否则知道也没用。5、火车票售票程序是如何设计的呢?感觉很复杂呀,区间车,全程车,我浮浅的认为是0/1代表一个区间,可,那样京广线之类的不是字段超级长? 那涉及算法,应该去专门看看。在这给你列出关键原理都没什么用,因为我根本不认为你有做那种应用的必要。现在这类网站快过剩了,再做一个类似的有什么用。
      

  3.   

    to  Crying_boy,我之前也在想锚标的问题,这个出现在马化腾的故事里,是麻花藤给技术员发邮件,希望实现某种锚标效果,你可以去百度搜索下,呵呵~所以,我倒是蛮好奇,这功能是怎么做的嘞
      

  4.   

    to  theforever说真的哦,真心没想到,朋友,你会这么耐心的答复,心里还是有点小触动的。我在知道破10级的,分很多,却没有用,没人回答我问题,我给别人解答,提问者真的很让人无奈。我之前很纳闷CSDN论坛,说实在的,做的真的不算好的,但是,为什么大家愿意在上面分享,问答。
    其实,我本身是初级的程序员,本行懂得也不多,对js脚本和网络,服务器等知道的也比较少我会记得采纳你的,非常谢谢。
      

  5.   


    上面打错了。是先创建 <a name="回到这来" id="锚点"></a>,这是标准的锚点标签。然后在转换后的区域增加一个<a href="#回到这来">回到上次位置</a>。简单点,就是让每次创建的锚点ID不同,这样不用清除也可以,毕竟一次使用创建的锚点有限,浪费不了多少内存。要完全走标准流程,回去的时候就取消原锚点的话,就得把后面这个A链接给个ID,比如theforever_csdn,并用style隐藏起来,然后用 <input type="button" onclick="document.getElementById('theforever_csdn').click();document.getElementById('锚点').remove();" value="返回上次的位置" />相比之下,还是第一种方法,记录横竖滚动条的位置比较直接了。
      

  6.   

      我上面更正的时候,没注意你这回复。也谢谢你的认可。
      的确CSDN做得还有很多不完善的地方,比如没有百度知道和贴吧那样的回复提醒,别的很多更不用说了。这也是因为积重难返吧。
      同样,CSDN从早期到现在长期积淀下来的用户也习惯了主要的可以接受的一些风格。更主要的是CSDN是专门面向技术交流的,不仅有细致的分类,还有各种相关的资讯频道,内容立体丰富。而百度知道则是个简易的大杂烩,无视各个方面的一些重要特点,只抽象出来通用的最简化的组织模式和分类,过滤又过于局限,不适于技术问题的有效交流。而且虽然有“知道团队”那样的组织结构,但在更大的宏观上缺乏一种联系。而CSDN虽然在论坛回答上没有团队结构,但已经形成一种自然的熟脸效应,但和讲人情关系不同,是一种技术和观点上的认同。或者说,任何地方只要积聚起来一帮专业到达一定程度,并能够高度自治的人,那这个地方就可以向着更好去发展。百度的一些负面因素阻碍了这个过程的到来速度。