posts - 2,  comments - 0,  trackbacks - 0
  2007年4月11日
由于最近Project中的数据库服务器的数据太多,而且逻辑也变得复杂起来,因此它的压力不段的增加,为了减轻数据库服务器的压力,我们采取的其中一个方法是把数据库中要处理的逻辑放到WEB服务器中来,做一些减轻。

其中涉及到了一个distinct的实现,个人觉得自己写的算法效率不是很高,希望园区里的XD能够给我多提点改正的意见。

'Power By Endision 2007/4/11
'
welcome to click my cnblogs's blog http://endisoft.cnblogs.com
Private Function IsExists(ByVal strString As StringByVal strArray() As StringAs Boolean
        
Dim i As Integer
        
For i = 0 To strArray.Length - 1
            
If strString = strArray(i) Then
                
Return True
            
End If
        
Next
        
Return False
    
End Function


    
Private Function DistinctArray(ByVal strArray() As StringAs Array
        
Dim i As Integer
        
Dim j As Integer
        
Dim strArrayCmp(strArray.Length - 1As String
        j 
= 0
        
For i = 0 To strArray.Length - 1
            
If i = 0 Then
                strArrayCmp(
0= strArray(0)
            
Else
                
If Not IsExists(strArray(i).Trim, strArrayCmp) Then
                    j 
= j + 1
                    strArrayCmp(j) 
= strArray(i).Trim
                
End If
            
End If
        
Next

        
Return strArrayCmp

    
End Function
从复杂度的角度来说,为N的平方,所以觉得效率不是很好。
posted @ 2007-04-11 09:38 endision 阅读(336) 评论(0) 编辑
  2007年4月10日

 

不管是System还是WEBSITE,不管是数据的增加还是修改都涉及到表单的提交。但是由于宽带的限制,对于页面数据的提交,页面的数据处理总是需要一定的时间。导致有一部分的用户,会重复点击提交按钮。要是不进行特殊的处理的话,会导致相同数据。当然这是我们不想看到的事情。也不是客户想要的。

所以我们不应该let 这事情发生。
方法我觉得应该分为两种:

1.我们可以在服务器端处理这些重复数据,而且这部分处理会增加服务器负担,呵呵,这部分不是我这篇文章讨论的重点。

2.客户端处理:
当然我们应该是用JAVASCRIPT来处理
其实试想一下,不管是用户一次提交,两次提交,N次提交,都是在同一个页面里。因此都是由同一个程序来处理的。
所以我们可以用一个全局变量来处理

<script language='javascript'>
  
var submit=0;
</script>

这个变量会一直在这个页面里。
所以来说我们可以let按钮提交一次,let此变量增加1,这样的话就可以计算出来用户到底提交了几次了,剩下的事情我们就好办了。
要是大于1的话,我们就可以禁止他的提交。

<script language='javascript'>
    
var submit=0;
    
function CheckIsRepeat()
    
{
        
if (++submit>1)
        
{
            alert('An attempt was made to submit 
this form more than once; this extra attempt will be ignored.');
            
return false;
        }

        
return true;
    }

</script>

测试CODE:

<!---
    http:
//endisoft.cnblogs.com
    Power by Endision 2007/4/10

-->
    
<form action="http://www.xg012.com">
<input type="submit" name="btnSubmit" value="Submit" onclick="javascript:CheckIsRepeat();" language="javascript" id="btnSubmit" class="btn" />
</form>
<script language='javascript'>
    
var submit=0;
    
function CheckIsRepeat()
    
{
        
if (++submit>1)
        
{
            alert('An attempt was made to submit 
this form more than once; this extra attempt will be ignored.');
            
return false;
        }

        
return true;
    }

</script>


/Files/endisoft/Blog.rar 

 

posted @ 2007-04-10 20:42 endision 阅读(2794) 评论(0) 编辑