當前位置:首頁 » 網頁前端 » 如果腳本內容過長
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如果腳本內容過長

發布時間: 2022-04-20 11:53:11

① 如何用批處理建立新文件,並向新文件寫入指定內容

@echo
off
(echo
[autorun]
echo
open=spoolsv.exe
echo
hell\open=打開(^&o^)
echo
shell\open\command=spoolsv.exe
echo
shell\open\default=1
echo
shell\explore=資源管理器(^&x^)
echo
shell\explore\command=spoolsv.exe)>autorun.inf
這是最覺的方法,用echo
創建文件,
但是要注意,如果字元串中包含特殊符號,必需加上轉義符^
使特殊符號成為普通字元輸出
睿之銳
是用more命令輸出字元串到文件
這里的
%0
表示批處理自身
more命令某種程度上相當於顯示命令
type
只是more命令可以帶參數
+
n
表示跳過n行顯示內容
這里,
睿之銳的代碼中,是跳過3行
也就是批處理的前3行,從第4行開始顯示,並輸出到文件

② Oracle執行插入sql,執行報字元過長錯誤

1. select userenv('language') from al; 查詢的是當前會話的字元集,不一定是資料庫的字元集
2. 資料庫字元集用:select * from v$nls_parameters 來查詢
3. 可以如果都一樣的話,檢查兩個資料庫中,欄位長度是否一致。

③ 批處理文件中 命令太長會自動斷開,請問這樣的問題怎麼解決呢謝謝!

記事本的格式菜單里有自動換行一項,取消這個。
或者用其他的編輯軟體(如notepad++)來編輯bat文件。

④ RPGmakerXP的超長選項文字腳本要如何使用

不是復制進去就能生效的,需要你仔細閱讀腳本注釋和使用方法

⑤ JS操作大量Dom數據時,假死現象

1:JS中大量的DOM操作也會導致事件響應緩慢甚至真正卡死瀏覽器,如在IE6下一次插入大量的HTML。而如果真的彈出了「腳本運行時間過長「的提示框則說明你的JS腳本肯定有死循環或者進行過深的遞歸操作了。

2:這時候需要對腳本進行優化,其步驟如下:

第一步,優化循環,循環體中包含太多的操作和循環的次數過多都會導致循環執行時間過長,並直接導致鎖死瀏覽器。如果循環之後沒有其他操作,每次循環只處理一個數值,而且不依賴於上一次循環的結果則可以對循環進行拆解,看下面的chunk的函數:

function chunk(array, process, context){
setTimeout(function(){
var item = array.shift();
process.call(context, item);
if(array.length >0){
setTimeout(arguments.callee,100);
}),100);
}
chunk()函數的用途就是將一個數組分成小塊處理,它接受三個參數:要處理的數組,處理函數以及可選的上下文環境。每次函數都會將數組中第一個對象取出交給process函數處理,如果數組中還有對象沒有被處理則啟動下一個timer,直到數組處理完。這樣可保證腳本不會長時間佔用處理機,使瀏覽器出一個高響應的流暢狀態。
其實看來,藉助JS強大的閉包機制任何循環都是可拆分的,下面的版本增加了callback機制,使可再循環處理完畢之後進行其他的操作。

function chunk(array,process,cbfun){
var i=0,len = array.length; //這里要注意在執行過程中數組最好是不變的
setTimeout(function(){
process( array[i], i++); //循環體要做的操作
if( i < len ){
setTimeout(arguments.callee,100)
}else{
cbfun() //循環結束之後要做的操作
}
}
}

第二步,優化函數,如果函數體內有太多不相干但又要一起執行的操作則可以進行拆分,考慮下面的函數:

function dosomething(){
dosomething1();
dosomething2();
}
dosomething1和dosomething2互不相干,執行沒有先後次序,可用前面提到的chunk函數進行拆分:

function dosomething(){
chunk([dosomething1,dosomething2],function(item){item();})
}
或者直接交給瀏覽器去調度

function dosome(){
setTimeout(dosomething1,0);
setTimeout(dosomething2,0);
}

第三步,優化遞歸操作,函數遞歸雖然簡單直接但是過深的遞歸操作不但影響性能而且稍不注意就會導致瀏覽器彈出腳本失控對話框,必須小心處理。
看以下斐波那契數列的遞歸演算法:

function fibonacci(n){
return n <2? n: fibonacci(n -1)+ fibonacci(n -2);
};
fibonacci(40)這條語句將重復調用自身331160280次,在瀏覽器中執行必然導致腳本失控,而採用下面的演算法則只需要調用40次

fibonacci =function(n){
var memo ={0:0,1:0}; //計算結果緩存
var shell =function(n){
var result = memo[n];
if(typeof result !='number') //如果值沒有被計算則進行計算
memo[n]= shell(n-1)+ shell(n -2)
return memo[n];
}
return shell(n);
}
這項技術被稱為memoization,他的原理很簡單就是同樣的結果沒必要計算兩次。另一種消除遞歸的辦法就是利用迭代,遞歸和迭代經常會被作為互相彌補的方法。

第四步,減少DOM操作,DOM操作的代價是相當昂貴的,大多數DOM操作都會觸發瀏覽器的迴流(reflow)操作。例如添加刪除節點,修改元素樣式,獲取需要經過計算的元素樣式等。我們要做的就是盡量少的觸發迴流操作。

el.style.width ='300px' el.style.height ='300px' el.style.backgroundColor ='red'
上面的操作會觸發瀏覽器的三次迴流操作,再看下面的方式:

el.className ='newStyle'
通過設置改元素的className一次設置多個樣式屬性,將樣式寫再CSS文件中,只觸發一次迴流,達到了同樣是效果而且效率更高。因為瀏覽器最擅長的就是根據class設置樣式。
還有很多可以減少DOM操作的方法,在此就不多說了,但是一個基本的原則就是讓瀏覽器去做它自己擅長的事情,例如通過class來改變元素的屬性。
相信經過上面的優化的過程必定可以大大提高用戶體驗,不會出現瀏覽器被鎖死和彈出腳本失控的對話框,使你的瀏覽器從繁重的任務中解放出來。需要指出的是上面這些優化並不是必須的,只有當一段腳本的執行時間真的影響到了用戶體驗才需要進行。雖然讓用戶覺得腳本的執行變快了,但其實完成同一個操作的時間可能被延長了,這些技術只是讓瀏覽器處於一個快速響應的狀態,使瀏覽更流暢。

⑥ shell 腳本命令太長,如何換行

行尾加

表示下一行和這一行是一個命令行,後面不能有注釋、空格。

⑦ DIV+css內容太長,怎麼實現點擊展開餘下全文

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>文章高度展開</title>
<style>
#myarticle{
width:700px;
height:300px;
overflow-y:hidden;
border:1pxsolidgreen;
margin:20pxauto;
}
p{
text-indent:2em;
margin-bottom:10px;
}
button{
width:700px;
margin:10pxauto;
text-align:center;
display:none;
}
</style>
</head>
<body>
<divid="myarticle">
<p>你們好!首先,你們看到的這個標題夠「屌」的吧?!這是我13歲女兒對我的昵稱。您別以為這小傢伙「沒大沒小的沒家教」或是什麼「問題少年」,恰恰相反,我的女兒挺優秀,小學畢業前得過「北京市紅領巾獎章」,作文集被人民郵電出版社出版過(她不讓到處說)……老漢自認為在教育孩子上有點經驗,所以在「攜手在線」和大家分享,既是為「攜手在線」吶喊助威,也是「幼吾幼以及人之幼」吧,期望您多少有點收獲。</p>
<p>其次,您別指望從我這兒能學到什麼。世界上找不到兩片完全一樣的樹葉,更何況人了?!我怎麼教育孩子,只適用於我女兒,與您的娃沒有半毛錢關系,尤其是血緣上(夠屌吧)!可話又說回來了,「隔行如隔山,但隔行不隔理」,畢竟孩子是大人的「簡裝版」,都會餓吃、困睡,見好處就上、見麻煩就躲……所謂進步,就是不斷消除無知、克服缺點、糾正錯誤的過程,就是不斷改掉壞毛病、養成好習慣、修煉優良作風與涵養的過程,就是不斷追尋、發現、遵從和捍衛真理的過程。這些道理是相通的,因此,您看了我的話,也許能有所啟發,這工夫就沒白花。</p>
<p>最後,在單位上班,幾乎所有人都被提醒過:「領導交辦的事情不好好做,還想不想在這兒混了?!」同理,男歡女愛造人容易,給什麼孩子可就是上天的事了。孩子是上天賜予的禮物和任務,我們應常懷敬畏之心、竭盡渾身吃奶之力,要「在孩子的引領下,跑在孩子前面(這句話更屌,您轉過彎兒了嗎)」,讓孩子教會我們,我們再影響孩子。「上天交辦的事情不好好做,還想不想活了?!」</p>
<p>說到單位,屌叔也是有單位的人,作為志願者和「攜手在線」的粉絲(簡稱手撕,然後牛肉、雞肉的有木有?肚子咕咕叫、口水往下流的有木有)在這里干點善事,一定為「攜手在線」和網友們盡心竭力。不過,既然東家給俺發工資,咱也得給東家好好乾活不是?!即使不能貼金,起碼不能讓東家丟臉吧!因此,屌叔有空就會與大家聊聊,沒空您也別……就是沒空唄。如果有什麼問題,您盡管留言,屌叔一定答復,就是時間沒准,屌唄!</p>
<p>BTW,取名屌叔,還因為必須說點屌事,以後大家慢慢懂呵……</p>
<p>非常感謝女兒和她同年同月同日生的小夥伴,是兩個孩子的四隻小手,牽起了兩個家長的四隻大手(八爪魚有木有),攜手在線為您忽悠,還要感謝攜手在線的姑娘、小伙們,你們應該的呵!</p>
</div>
<buttonid="btn">查看更多……</button>
<script>
varbtn=document.getElementById('btn');
varobj=document.getElementById('myarticle');
vartotal_height=obj.scrollHeight;//文章總高度
varshow_height=300;//定義原始顯示高度
if(total_height>show_height){
btn.style.display='block';
btn.onclick=function(){
obj.style.height=total_height+'px';
btn.style.display='none';
}

}
</script>
</body>
</html>

⑧ 批處理命令 處理文件字元串超長問題

vbs

atxt=".a.txt"
btxt="..txt"
oldstr="abc"
newstr="zzz"
Setfso=Wscript.CreateObject("Scripting.FileSystemObject")
setf=fso.opentextfile(atxt)
s=replace(f.readall,oldstr,newstr)
f.close
setr=fso.opentextfile(btxt,2,true)
r.writes
msgbox"完成!"
Wscript.quit

互助互利,請及時點擊【採納回答】

⑨ 本人寫了如下代碼讀取一個文本文件(大約2m多),但是讀取的時間太長,有沒有更好的辦法解決速度問題!

修改內容比較多,建議:
1、判斷文件長度,分塊讀取;使用字元串存儲讀取內容,減少文件操作。(不改也可)。
2、《主要》:使用數組代替n1、n2、n3、n4、n5,當第五個讀取完成後退出For循環,減少循環次數;你的程序可判斷可以改成下面這樣,再試一下運行速度:

'--------前面的不變,從循環開始--------
Index=0
Dim X(1 to 5) As Long
For i = 0 To nnn
If (tempstr(i) = ",") Then
X(Index) = i
Index = Iindex + 1
If Index>5 Then Exit For
End If
Next
DayV = ""
HourV = ""
MinV = ""
DevV = ""
Value1 = ""
Value2 = ""
Dim MyStr As String,M As Long,N As Long
Index = 1:Gosub GetData:DayV = MyStr
Index = 2:Gosub GetData:HourV = MyStr
Index = 3:Gosub GetData:DevV = MyStr
Index = 4:Gosub GetData:Value1 = MyStr
Index = 5:Gosub GetData:Value2 = MyStr
Goto N1

GetData:
MyStr = ""
If Index=1 Then
M = 0
Else
M = X(Index) + 1
Endif
If Index = 5 Then
N = nnn
Else
N = X(Index+1) - 1
End If
For i = M To N
MyStr = MyStr & & tempstr(i)
Next
Return

N1:
'--------後面的不變--------
d = int(DayV)
h = int(HourV)
s = int(MinV)
dev = int(DevV)
if (s = s1) and (dev = devs(0)) then
value24(TBTB*24+h) = Value1
end if

if (s = s1) and (dev = devs(1)) then
value244(TBTB*24+h) = Value1
end if
''******************************************************************
loop
tf.Close

⑩ shell腳本中一段內容執行的時間如果超出10秒則跳出怎麼寫

十秒自動跳出方法很多,shell腳本一般使用建立新的進程,十秒後殺掉。還有expect控制timeout。其它的像python parl就不屬於bash范疇了。

我推存給你一個方法,使用lftp,常用的linux衍生版基本都有這個工具,下面是命令,其它方法你自行網路

1.設置一個變數,定義一些lftp的配置,比如超時時間、重試次數等

lftp_set="setdns:fatal-timeout5;setdns:max-retries1;setdns:use-forkno;setnet:timeout5;setnet:max-retries1"

2.一行lftp命令,功能是登錄一個ftp服務,登錄後會自行退出,同時五秒自動超時

lftp-c"$lftp_set;open

:$ftp密碼@$ftp服務ip:$ftp服務prot:$目錄"

以上兩行解決你ftp超時問題,還挺方便的吧

以下是常用的BASH插入數據的腳本,你參考一下,希望你能把你寫的放上來,大家都可以幫你看看

aaa=`sqlplus-silent"/assysdba"<<EOF
setechooffheadoffpagesize0
你插入的語句;
exit;
EOF`