实例分析之用ASP编程实现网络内容快速查找的代码

有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很。接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么。如此一来,我还是得着手对付代码它们。 
我的朋友开了一个小型站点,原本是我设计的。这是个检验我想法的好平台。所以我写出代码,上传了文件。真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错。
以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深。说是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点。我的代码就可以针对这个问题,保险用户只要点一次鼠标就找到目标。在我的例子里,假设有个用户上了Yahoo,检索关键字为Fireplace Accessories(飞行器材配件)。在给出的结果里,他来到我朋友的站点,将看到"你正在搜索Fireplace Accessories"等字样的画面。接着他会按照网站上的提示,直接到想要去的页面。 
你要作的第一步,是在global.asa文件中建立一个初始变量,放置在你的Sub Session_onStart()程序中。 


代码如下:

Sub Session_onStart()   
 Referer = Trim(Request.ServerVariables("HTTP_REFERER"))   
 If Referer = "" Then   
  Referer = "None"   
 End If   
  Session("Referer") = Referer   
End Sub

接着我们来着手看看如何完成程序的主要功能。 
因为url经过了编码,所以首先要把来访者主机的指向数据还原成对我们有用的东西。建立一个ASP页面,叫它decode.asp,是我们程序的主干。第一个功能是要对编码过的指向头进行解码。程序有点长,而且很直接,没有什么转弯抹角,如果你嫌麻烦,不如到www.popunet.com的"网虫进修班"上面找到本文,用"拷贝/粘贴"大法吧。 
源代码 
  第二件要作的事情是:从URL头信息里分离出查询部分--这个才是我们需要的。 


代码如下:

 '从指向URL中分离查询字段。   
Function isProduct(pStr)   
 If pStr <> "" And lCase(pStr) <> "none" Then   
  '向后搜索字段   
  temp = inStrRev(pStr, "/")   
  '得到目录分离的位置   
  tempStr = Right(pStr, temp)   
  '得到有关数据长度   
  temp2 = Len(pStr)   
  '得到查询数据行   
  pStr = Mid(pStr, temp, temp2)   
  '设定返回功能的值   
  isProduct = pStr   
Else   
  isProduct = ""   
End If   
End Function

接着是要确立查找的明确标准。为达到这个目的,建立两个静态空间"指?查找指向数据 


代码如下:

Function Finder(byRef prodList, byVal refList)   
'模糊查询   
refList = lCase(refList)   
' 通过指针循环查找匹配字段   
For i = 0 To uBound(prodList) - 1   
If inStr(refList, lCase(prodList(i, 0))) Then   
'找到匹配   
tHolder = tHolder & "Are You looking For " _   
& "" _   
& prodList(i, 0) & "  
"   
End If   
'第二次循环   
Next   
'返回结果   
Finder = tHolderEnd Function  
通过一个inclue,把我们做好的decode.asp放到需要此功能的任何页面,大功告成啦。  
  具体如下:  
  '如果指向头不为空,调出此功能If lCase(Session("Referer")) <> "none" OR Session("Referer") <> "" Then' 解析指向数据 Response.Write vbCrLf & "  
" _ & Finder(pArray, URLDecode(isProduct(Session("Referer")))) _ & " 
" & vbCrLf  
End If

(0)

相关推荐

  • 实例分析之用ASP编程实现网络内容快速查找的代码

    有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很.接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么.如此一来,我还是得着手对付代码它们.  我的朋友开了一个小型站点,原本是我设计的.这是个检验我想法的好平台.所以我写出代码,上传了文件.真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错. 以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深.说是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点.我的代

  • 用ASP编程实现网络内容快速查找

    有一天我突发奇想,要是我每到一个网站,那里都能立刻调出我需要看的信息,那岂非美妙得很.接下来我想更深入地考虑这个问题,坐到椅子上拿一支铅笔,却不知道自己写什么.如此一来,我还是得着手对付代码它们. 我的朋友开了一个小型站点,原本是我设计的.这是个检验我想法的好平台.所以我写出代码,上传了文件.真叫人兴奋,程序工作起来煞是圆满,同时也证明我的想法的确不错. 以前看过一些网络使用者倾向报告,其中有一个规律给我印象很深.说是大多数用户如果在三次点击内无法找到自己需要的内容,就会立刻离开该站点.

  • tangram.js库实现js类的方式实例分析

    本文实例讲述了tangram.js库实现js类的方式.分享给大家供大家参考,具体如下: 前面一篇http://www.jb51.net/article/25781.htm对tangram.js库做了较为详细的介绍,这里结合实例分析一下tangram.js库实现js类的方式.代码如下: /* * Tangram * Copyright 2010 Baidu Inc. All rights reserved. * * @author: meizz * @namespace: baidu.lang.c

  • Android编程获取网络时间实例分析

    本文实例讲述了Android编程获取网络时间的方法.分享给大家供大家参考,具体如下: 在网上看到的最常见的方式有: public static void main(String[] args) throws Exception { URL url=new URL("http://www.bjtime.cn");//取得资源对象 URLConnection uc=url.openConnection();//生成连接对象 uc.connect(); //发出连接 long ld=uc.g

  • go语言简单网络程序实例分析

    本文实例分析了go语言简单网络程序.分享给大家供大家参考.具体分析如下: 服务端代码如下: 复制代码 代码如下: package main import (     "net"     "os" ) func serve(s net.Conn) {     var buf [1024]byte     for {         n, err := s.Read(&buf)         if err != nil || n == 0 {         

  • Android编程显示网络上的图片实例详解

    本文实例讲述了Android编程显示网络上的图片的方法.分享给大家供大家参考,具体如下: 在Android中显示网络上的图片,需要先根据url找到图片地址,然后把该图片转化成Java的InputStream,然后把该InputStream流转化成BitMap,BitMap可以直接显示在android中的ImageView里.这就是显示网络上图片的思路,实现起来很简单.下面让我们看一下实现起来的过程. 首先在AndroidManifest.xml中给程序加上访问Internet的权限: 复制代码

  • javascript函数式编程实例分析

    本文实例讲述了javascript函数式编程.分享给大家供大家参考.具体分析如下: js像其他动态语言一样是可以写高阶函数的,所谓高阶函数是可以操作函数的函数.因为在js中函数是一个彻彻底底的对象,属于第一类公民,这提供了函数式编程的先决条件. 下面给出一个例子代码,出自一本js教程,功能是计算数组元素的平均值和标准差,先列出非函数式编程的一种写法: var data = [1,1,3,5,5]; var total = 0; for(var i = 0;i < data.length;i++)

  • ASP.NET MVC中的视图生成实例分析

    本文实例分析了ASP.NET MVC中的视图生成过程.分享给大家供大家参考.具体如下: 在 ASP.NET MVC 中,我们将前端的呈现划分为三个独立的部分来实现,Controller 用来控制用户的操作,View 用来控制呈现的内容,Model 用来表示处理的数据. 从控制器到视图 通常,在 Controller 中,我们定义多个 Action ,每个 Action 的返回类型一般是 ActionResult,在 Action 处理的最后,我们返回对于视图的调用. 复制代码 代码如下: pub

  • android编程之多线程编程实例分析

    本文实例讲述了android编程之多线程编程实现方法.分享给大家供大家参考.具体分析如下: 该功能与前面<android开发socket编程之udp发送实例分析>中一样,当按下键后,发送文本框中数据给PC.不同的是把发送数据的功能放在一个线程socket_send中. 一.环境: win7 + eclipse + ndk 二.代码: 主类test_socket.java package test.soket; //import com.test_button.R; import java.io

  • Python多进程编程技术实例分析

    本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧.分享给大家供大家参考.具体分析如下: 一般来说,由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用多进程.但在做不阻塞的异步UI等场景,我们也会使用多线程.本篇文章主要探讨Python多进程的问题. Python在2.6引入了多进程的机制,并提供了丰富的组件及api以方便编写并发应用.multiprocessing包的组件Process, Queue, P

随机推荐