最新文章
|
知識管理交流
→『 技術文檔交流 』
本版文數:9459 今日文數:4032
|
郵箱在我們日常工作中,可以說是非常常見了。個人郵箱一般都是免費的,但企業郵箱會收費,雖然一般情況下,市面郵箱已經夠用了。但有些企業對內容安全要求比較嚴格、或者需要搭建郵件營銷系統等一些場景下,我們就需要開發自己的郵箱系統。項目簡介這是基于.Net開發的、開源的郵箱組件,功能強大、支持所有郵件協議、具備識別垃圾郵件、群發...
|
喜歡C#的其中一個原因,就是C#的語法非常簡潔,C#具有可讀性和易寫性、高效性、強大的功能性等優點,使得開發人員能夠更快速、更高效地開發出高質量的應用程序。下面盤點10個C#常用的簡潔語法,你用過幾個?01屬性初始化器以下例子,為Name屬性設置默認值“John”。publicclassPerson="Joh...
|
為什么將網頁html的內容導出為excel文件后布局會亂將網頁HTML的內容導出為Excel文件后,布局會亂的原因主要有以下幾點:1.HTML和Excel是兩種不同的文件格式,它們的布局和排版方式不同。HTML是一種標記語言,用于描述網頁的結構和樣式,而Excel是一種電子表格軟件,用于處理和展示數據。因此,將HTML...
|
isEmpty和isBlank的區別!isEmpty和isBlank的區別!#isEmpty系列StringUtils.isEmpty()是否為空.可以看到""空格是會繞過這種空判斷,因為是一個空格,并不是嚴格的空值,會導致isEmpty("")=falseStringUtils...
|
前言在.NET開發過程中,可以使用一些輔助的代碼生成器來提高開發效率,之前在.NETFW時代有國產的“動軟代碼生成器”,現在早已不維護了。下面介紹幾種.NET碼生成器,供大家參考使用。最后一個代碼生產器絕對優秀,推薦使用。T4TextTemplateGeneratorT4是.NET框架提供的一種代碼生成引擎。它使用類似...
|
前言關于歷史久遠的系統,源代碼已經找不到的程序,要想再進行二次開發需要借助反編譯工具進行修改。一、dnspy是什么?dnspy是反編譯工具,用于調試沒有源碼的.net程序。二、使用步驟1.下載工具有64位和32位兩個版本,根據程序的版本下載。文件-》打開-》找到對應的DLL文件即可。可對代碼進行修改和調試。但是看不到頁...
|
在去年九月份的時候,我分享了幾款反編譯工具,里面提到了dnSpy,但是實際上,我幾乎沒怎么用過它,只是在Github上大概看了一下,知道它很強大,能夠反編譯、調試、編輯C#DLL。直到前兩天,我分享了一下用ILspy配合reflexil修改現有.netDLL里面的常量參數,這時有友友再次提到dnSpy,這才使我想起了它...
|
1簡介html2canvas屏幕截圖基于DOM,因此可能不是100%準確到真實表示,因為它不會制作實際的屏幕截圖,而是根據頁面上可用的信息構建屏幕截圖。附件:html2canvas.rar官網地址2安裝2.1es6模塊化引入方式,項目中使用npminstall--savehtml2canvas//或yarnaddhtm...
|
vlookup函數匹配不出來的原因及解決方法在excel表格中,我們經常會使用vlookup函數來查找定位字符,但是近期卻用戶在使用中遇到了vlookup函數匹配不出來的情況,這是怎么回事呢?不要著急,下面小編就為大家分享vlookup函數匹配不出來的原因及解決方法,希望對你有所幫助。vlookup函數匹配不出來的原因...
|
網頁500錯誤的原因和解決方法網頁500錯誤的原因和解決方法網頁500錯誤(500InternalServerError)是一種常見的HTTP狀態碼,指示Web服務器遇到了錯誤,無法完成客戶端的請求。500錯誤通常是由于服務器端的問題導致的,例如代碼錯誤、數據庫連接失敗、服務器繁忙等。當Web服務器遇到500錯誤時,會...
|
背景運營同事發現大量的拼單、淘寶和閑魚上的會員賬號租借服務、外借賬號等問題已經影響到了公司營收。為了緩解這種問題,我們決定限制單一賬號能夠保持登陸狀態的設備數量,以此提高租借賬號的成本。要想限制設備,首先要解決的問題就是如何識別一臺設備。這可以借助FingerprintJS來解決,然而并不是所有指紋選項都能夠投入到生產...
|
Fingerprintjs2是一款開源的設備指紋采集器。最初的fingerprintjs庫創建于2012年,但是由于新版本的開發很難保持向后兼容,因此Fingerprintjs2項目中增加了很多的新內容。該項目將更多、更有效的來源用于指紋識別,并且可配置,也就是說用戶可以選擇性地開啟其中的選項。該項目還將重點關注IE插...
|
Fingerprint2是一款開源的設備指紋生成器。主要用于判斷用戶是否是新增用戶,或者判斷設備是否為新增訪問設備。在項目中應用:1、npm下載Fingerprint2庫:npminstallfingerprintjs2-S2、在項目中引入Fingerprint2:importFingerprint2from‘fing...
|
FingerprintJS之前有后端小哥問道,前端可否生成瀏覽器唯一標識UUID,發給后端處理。當時我想都不用想,直接拒絕(手動狗頭)。后來想了想,這是個不錯了研究題材,就google了一把,于是乎發現了這個寶藏庫(FingerprintJS)。它能夠生成瀏覽器唯一標識來區別不同的用戶,pro版本的識別率高達99.5%...
|
fingerprint2一款開源設備指紋采集器,在github上有7k的Star,看起來是那么的讓人放心,今天聊一聊我們在使用這個庫中猜到的坑。本篇所講的fingerprint2版本為2.0.6生成的指紋大面積重復問題!!!生成的指紋大面積重復問題!!!生成的指紋大面積重復問題!!!重要的問題講三次。fingerpri...
|
SQLServer(MSSQLSERVER)無法啟動怎么解決?1、IP地址配置不正確:打開MicrosoftSQLServer2005配置工具下的SQLServerConfigurationManager,選擇MSSQLSERVER協議,然后雙擊右邊窗口的TCP/IP,在彈出窗口中檢查IP配置。2、可能是因為VIA協議...
|
今天來分享10個開源的前端低代碼項目!GOVIEWGoView是一個使用Vue3搭建的低代碼數據可視化開發平臺,將圖表或頁面元素封裝為基礎組件,無需編寫代碼即可完成業務需求。它的技術棧為:Vue3+Typescript4+Vite2+NaiveUI+ECharts5+Axios+Pinia2+PlopJS。Gitee:...
|
Vue結合了React和Angular的優點,并且有著團結、活躍且龐大的社區,可以幫助解決開發中遇到的問題。開源社區不斷提出解決問題的新方法。工具和庫的數量也貢獻量不斷的增加。使用Vue的好處該框架非常小。約為18–21KB;Vue支持用基于組件的方法來構建Web應用;詳細的文檔。這對于初學者來說很容易上手;易于理解。...
|
場景:在運行、調試代碼的時候,往往會遇到一些異常情況,很多時候我們代碼寫得足夠健壯,所以出現的概率比較低,但是如果一旦出現,我們又沒處理好,就可能會導致程序的崩潰、退出;當然還有一部分在方法內被我們用trycatch給處理掉了,但是不得不承認,還是會有極少的異常未被規避,或者說,相信不是所有的方法內都做了異常處理,所以...
|
其實對于兩個程序之間進行通信的實現方式有很多種,一般會采用服務端+客戶端的模式,此處我們是進行兩個客戶端之間的通信,如果用一種最簡單的方式去實現的話,我認為可以采用寫文件的方式,即一個讀,一個寫。這個寫法的話可以參考之前的關于文件讀寫的文章;但這里我們使用的是另一種,基于WindowsAPI實現Windows消息的發送...
|
select標簽中設置只讀幾種解決方案需求:只讀但需要傳遞到后臺。readonly設置對select標簽無效!方式一、直接在標簽中用js方法設置不可變更(推薦)<selectreadonly="readonly"onfocus="this.defaultIndex=this.selecte...
|
使用asp盡量減少服務器端的工作量,這樣就應該多使用javascript,把所有提交字段使用javascript或vbscript檢測后提交給服務器,這樣服務器就不必再作檢測,而在提交時可能會有人修改script從本地提交,這樣存在安全提交的問題,所以應該要求從服務器斷路徑提交,其他地址提交提交無無效:<%dimtmp...
|
導讀Javascript是一種單線程的編程語言,只有一個調用棧,決定了它在同一時間只能做一件事。在代碼執行的時候,通過將不同函數的執行上下文壓入執行棧中來保證代碼的有序執行。在執行同步代碼的時候,如果遇到了異步事件,js引擎并不會一直等待其返回結果,而是會將這個事件掛起,繼續執行執行棧中的其他任務。因此JS又是一個非阻...
|
如果你發現自己反復使用Console來運行同一份代碼,那么你應該考慮將代碼保存成片段。Snippets是你在Source面板中創建的腳本。這些腳本可以獲取到頁面的Javascript上下文,你可以在任意頁面運行它們。代碼片段就是書簽bookmarklets的替代品。舉個例子,如下截圖所示,頁面左側展示了DevTools...
|
回調函數(callback)回調函數簡單理解就是一個函數被作為參數傳遞給另一個函數。回調是早期最常用的一種異步解決方案。回調并不一定就是異步,并沒有直接關系。舉個簡單的例子:functionf1(cb),2000);}f1(()=>);如上,我們使用setTimeout在函數f1中模擬了一個耗時2s的任務,耗時任務結束...
|