搜尋
首頁資料庫mysql教程Web实用技巧总结

Web实用技巧总结

Jun 07, 2016 pm 03:36 PM
web如何實用技巧總結請求頁面

1、如何每次请求Web页面都取最新版本,而不是浏览器缓存中的页面 l 问题:浏览器中可以设定缓存选项来设置是否使用页面缓存,所以没法强制用户设定所有的Web页面都不使用缓存。 l 解决方法:在页面的HEAD标记中添加下面的标记,以保证该页面不缓存,每次请求

1、如何每次请求Web页面都取最新版本,而不是浏览器缓存中的页面

l  问题:浏览器中可以设定缓存选项来设置是否使用页面缓存,所以没法强制用户设定所有的Web页面都不使用缓存。

l  解决方法:在页面的

标记中添加下面的标记,以保证该页面不缓存,每次请求都取最新版本。

  

l  浏览器缓存设置是针对所有页面的,而这种设置方法是针对特定单个页面的,会覆盖浏览器缓存设置。

2、在使用window.showModalDialog()方法打开窗口中,如何提交表单不会弹出新窗口?

l  问题:首先window.showModalDialog()只在IE浏览器中有效。在使用window.showModalDialog()方法打开窗口中提交表单时,IE浏览器默认情况在新窗口中显示结果页面。

l  解决方法:在页面的

标记中添加下面的标记,指定基本目标窗口为_self。这样,提交表单时,就会在当前窗口中显示结果页面。

 

3、双表头固定的数据列表中,滚动条同步移动的实现

l  问题:Web中单表头固定的数据列表使用比较多,其滚动条移动的实现很简单,只要使用

标记,设置其的样式就可以了。但有时也需要使用双表头固定的数据列表,典型的例子就是人员的日程安排。

l  解决方法:分别用三个

标记包含上表头(topheader),左表头(leftheader)和数据内容(content),只有content有滚动条;当移动滚动条时(产生onscroll事件),设置topheader的scrollLeft属性以及leftheader 的scrollTop属性,使其和content保持一致。

l  下面是一个实现例子的核心代码片断,做一下简单说明,源代码可以在这里下载。

function hasAttribute(object, attrName) {

if (typeof object !== "object" && typeof object !== "string") {

return false;

}

return attrName in object;

}

function syncScroll(topId, leftId, contentId) {

var topHeader = document.getElementById(topId);

var leftHeader = document.getElementById(leftId);

var content = document.getElementById(contentId);

if (topHeader && hasAttribute(topHeader, 'scrollLeft') && content && hasAttribute(content, 'scrollLeft')) {

topHeader.scrollLeft=content.scrollLeft;

}

if (leftHeader && hasAttribute(leftHeader, 'scrollTop') && content && hasAttribute(content, 'scrollTop')) {

leftHeader.scrollTop=content.scrollTop;

}

}

l  先来看三个

标记的样式:

?  overflow: scroll表示当

标记中的内容溢出时可以滚动

?  topheader和leftheader的overflow-x及overflow-y属性设置为hidden,表示溢出时不显示滚动条,而content设置为auto

?  content的width值比topheader的大16px,而height值比leftheader的大17px;这是为滚动条预留的(滚动条大概16-17px,根据具体   情况微调)

?  word-break: break-all用来保证数据过长时自动换行,以免将单元格宽度撑大而错位

l  topheader和content内部包含的

的width设置为绝对大小,并大于对应
的width,以便出现水平滚动条

syncScroll()函数在onscroll事件触发时调用,使topheader的scrollLeft属性以及leftheader 的scrollTop属性和content的保持同步

l  上面的例子个静态页面,在实际应用中通常是动态页面,需要注意以下一些方面:

?  显示的列数不定时(例如每个月的天数有所不同),需要动态计算

的width值

?  当content内部包含的

的width值

?  同样,当content内部包含的

的height值

?  word-break: break-all保证了单元格宽度不会撑大;但当单元格内容显示不下时,会自动撑大宽度,所以当表格的行距不同时,要动态计算以决定是否要出垂直滚动条,这个要麻烦一些

4、全角半角字符混合输入的处理

l  问题1:输入长度的验证,例如输入内容在数据库中是40字节,所以输入长度不能超过40字节;而JavaScript中的String.length获得的是字符个数。

l  解决方法:通常全角字符为2字节,而半角字符为1字节;这样String.length获得的长度相当于将全角字符作为1字节处理,所以再加上全角字符的个数就是字节数。考虑到escape()函数处理的字符串中,全角字符都转换成%uXXXX的Unicode形式,可以由此统计出字符串中的全角字符个数。

l  下面的JavaScript代码扩展了String对象,用来获取字符串的字节数

String.prototype.getBytesLength = function () {

return this.length + (escape(this).split("%u").length - 1);

};

l  问题2:由于显示空间有限,要求显示内容按指定长度(字节数)截取,这里有全角字符的前一个字节在指定长度范围里的问题。

l  解决方法:从字符串后端开始,逐个删除字符,直到字符串字节数

l  下面的JavaScript代码扩展了String对象,实现了上面的截取方法

String.prototype.removeCharAt = function (index) {

var retStr = this;

if (index

if (index === 0) {

retStr = this.substring(1);

} else {

if (index == this.length - 1) {

retStr = this.substring(0, this.length - 1);

} else {

retStr = this.substring(0, index) + this.substring(index + 1);

}

}

}

return retStr;

};

String.prototype.intercept = function (length) {

var s = this;

var len = s.getBytesLength();

while (len > length) {

s = s.removeCharAt(s.length - 1);

len = s.getBytesLength();

}

return s;

};

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
mysql:blob和其他無-SQL存儲,有什麼區別?mysql:blob和其他無-SQL存儲,有什麼區別?May 13, 2025 am 12:14 AM

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而ilenosqloptionslikemongodb,redis和calablesolutionsolutionsolutionsoluntionsoluntionsolundortionsolunsonstructureddata.blobobobissimplobisslowdeperformberbutslowderformandperformancewithlararengedata;

mySQL添加用戶:語法,選項和安全性最佳實踐mySQL添加用戶:語法,選項和安全性最佳實踐May 13, 2025 am 12:12 AM

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

MySQL:如何避免字符串數據類型常見錯誤?MySQL:如何避免字符串數據類型常見錯誤?May 13, 2025 am 12:09 AM

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollat​​ionsEttingSefectery.1)usecharforfixed lengengtrings,varchar forvariable-varchar forbariaible length,andtext/blobforlargerdataa.2 seterters seterters seterters

mySQL:字符串數據類型和枚舉?mySQL:字符串數據類型和枚舉?May 13, 2025 am 12:05 AM

mysqloffersechar,varchar,text,and denumforstringdata.usecharforfixed Lengttrings,varcharerforvariable長度,文本forlarger文本,andenumforenforcingDataAntegrityWithaEtofValues。

mysql blob:如何優化斑點請求mysql blob:如何優化斑點請求May 13, 2025 am 12:03 AM

優化MySQLBLOB請求可以通過以下策略:1.減少BLOB查詢頻率,使用獨立請求或延遲加載;2.選擇合適的BLOB類型(如TINYBLOB);3.將BLOB數據分離到單獨表中;4.在應用層壓縮BLOB數據;5.對BLOB元數據建立索引。這些方法結合實際應用中的監控、緩存和數據分片,可以有效提升性能。

將用戶添加到MySQL:完整的教程將用戶添加到MySQL:完整的教程May 12, 2025 am 12:14 AM

掌握添加MySQL用戶的方法對於數據庫管理員和開發者至關重要,因為它確保數據庫的安全性和訪問控制。 1)使用CREATEUSER命令創建新用戶,2)通過GRANT命令分配權限,3)使用FLUSHPRIVILEGES確保權限生效,4)定期審計和清理用戶賬戶以維護性能和安全。

掌握mySQL字符串數據類型:varchar vs.文本與char掌握mySQL字符串數據類型:varchar vs.文本與charMay 12, 2025 am 12:12 AM

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

MySQL:字符串數據類型和索引:最佳實踐MySQL:字符串數據類型和索引:最佳實踐May 12, 2025 am 12:11 AM

在MySQL中處理字符串數據類型和索引的最佳實踐包括:1)選擇合適的字符串類型,如CHAR用於固定長度,VARCHAR用於可變長度,TEXT用於大文本;2)謹慎索引,避免過度索引,針對常用查詢創建索引;3)使用前綴索引和全文索引優化長字符串搜索;4)定期監控和優化索引,保持索引小巧高效。通過這些方法,可以在讀取和寫入性能之間取得平衡,提升數據庫效率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。