2011-07-18 91 views
0

我问过类似的问题之前,我收到了答复修复我的多维数组,以更快地接收getrows记录。有超过36 000条记录返回到这个多维数组中。虽然以前我的另一个问题的答案似乎没有加快我的网页我的很多。加速网页加载(2)

然后,我使用这个多维数组来检查某个ID是否匹配,然后将权限附加到内容。

所以我的多维数组 -

'MultiDimensional Array 
Dim permissionsArray 
Dim permissionsCount 
connectionstring = obj_ADO.getconnectionstring    

Set c = Server.CreateObject("ADODB.Connection") 
Set r = Server.CreateObject("ADODB.Recordset") 
r.CursorLocation = 2 'adUseServer 
c.open connectionstring 
c.CursorLocation = 2 'adUseServer 

SQL = "select OP_ObjectID, P_Name from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID order by P_Name" 

Set r = Server.CreateObject("ADODB.Recordset") 
r.CursorLocation = 2 'adUseServer 
r.Open SQL, c, 0, 1 'adOpenForwardOnly, adLockReadOnly 
If r.BOF or r.EOF Then 
    r.close() 
    Set r = Nothing 
Else 
    permissionsArray = r.GetRows() 
    permissionsCount = UBound(permissionsArray, 2) 
    r.Close() 
    Set r = Nothing 
End If 
c.Close() 
Set c = Nothing 

然后内容和标识的使用+多维数组的附加改变什么加载到多维数组权限

while obj_ADO.EOF(lng_RecSet) = 0   
%> 
       <tr> 
<% 
     objID = obj_ADO.GetField("O_ObjectID", adValue, lng_RecSet) 
%> 
        <td align="center" valign="top"><input type="checkbox" name="selectedRecord" value="<%=objID%>"></td> 
        <td valign="top" align="left"><font class="Content1"><%=obj_ADO.GetField("O_Name", adValue, lng_RecSet)%></font></td> 
       <td valign="middle" align="center"><center><div style="text-align: left; width: 180px;"> 
       <% 
       for i = 0 to (permissionsCount) 
        if permissionsArray(0, i) = objID then 
         %> 
         <li style="height: 2px;"> 
         <%=permissionsArray(1,i)%> 
         </li> 
         </br> 
         <% 
        end if       
       next 
       %> 
       </div></center></td> 
     </tr> 
<% 
     obj_ADO.MoveNext(lng_RecSet) 
    wend 
    obj_ADO.CloseRecordset lng_RecSet 
%> 

回答

1

修正这一点。而不是加载我所加载的所有内容,无论用户通过何种方式过滤

if str_Prefix = "" then 
    SQL = "select OP_ObjectID, P_Name from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID order by P_Name" 
elseif str_Prefix <> "" then 
    SQL = "select OP_ObjectID, P_Name from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID where P_Name like '" & str_Prefix & "' + '%' OR P_Name like '% ' + '" & str_Prefix & "' + '%' order by P_Name" 
else 
    SQL = "select OP_ObjectID, P_Name from l_objectpermission inner join A_Permission on op_permissionID = P_permissionID order by P_Name" 
end if