頁面訪問量,頁面操作統計等非業務邏輯應該怎麼設計
錯誤的設計:
我發現公司很多程式碼,比如去統計某個頁面的訪問量,很多開發同事都是在相應的controller去統計訪問量,打個比方說統計userManager頁面訪問量,就在UserManagerController中,跳轉usermanager頁面的方法中做點選統計訪問。這是非常不合理的,為什麼呢,因為這可能會導致業務邏輯程式碼和非業務邏輯程式碼混攪在一起。舉個極端的例子,假如你有1000個頁面,你是不是也在1000跳轉頁面方法中寫點選統計,這的是多大的工作量,假如有一天業務變動,將頁面訪問量改為頁面add操作訪問量,你是不是要去修改1000個方法。
總之這樣設計壞處:後期維護難,開發成本高。
我公司原先就這麼搞的,後來我建議改了,當時還沒接觸微服務,下面主要用微服務方案來處理。
設計:
我們統一將這類非業務邏輯部分放到一個服務單元處理。
閘道器部分對這類請求,多新增一個服務單元
介面設計提供一個公共介面,該介面處理請求特定引數。我的設計是操作型別,URL。URL通過spring容器獲取請求方法和跳轉頁面。上面介面已經可以做統計了,接下來是持久化了,因為這是一個頻繁資料庫互動操作(涉及操作日誌),所以我選擇Redis記憶體資料庫,因為是分散式系統,我沒有使用上下文處理。
相關推薦
頁面訪問量,頁面操作統計等非業務邏輯應該怎麼設計
錯誤的設計: 我發現公司很多程式碼,比如去統計某個頁面的訪問量,很多開發同事都是在相應的controller去統計訪問量,打個比方說統計userManager頁面訪問量,就在UserManagerController中,跳轉usermanager頁面的方法中做點選統計訪問。這是非常不合理的,
WAP移動端頁面顯示,文字和內容等比縮放的實現
同一個頁面,在不同顯示比例下如何等等比縮放而使頁面不會變形 比如同一個頁面下,372px 和642px顯示比例下文字大小和塊元素高度會隨著顯示的比例來等比縮放 比例始終顯示協調,不用重複除錯,其中一個重要的元素是將所有定義寬高的元素設定為rem rem是一個相對大小的值
jsp頁面傳送請求到後臺,當後臺返回到頁面時,css、js等都失效的問題
servlet重定向到jsp後,css樣式和圖片都沒了,原因是在servlet中轉發時css和圖片的路徑變成相對於這個servlet的相對路徑而非相對於web專案的路徑了。解決辦法:匯入css樣式和圖片時把css寫成動態絕對路徑,如用EL表示式表示:<link rel=
jQuery框架使用,jq選擇器,jq操作頁面內容, jq操作類名,jq操作全局屬性,jq獲取盒子信息,jq獲取位置信息,js/jq頁面加載完畢事件,jq事件
log html 事件對象 remove js事件對象 屬性 相對 eight prevent jq選擇器 // 獲取所有的頁面元素jq對象 $(‘css3選擇器語法‘); var $box = $(".box:nth-child(1)"); 獲取的是j
react-native 頁面B to 頁面C,頁面C返回資料給頁面B
/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, {Component} from 'react'; import
ios 上瀏覽器返回上一頁不會重新整理頁面問題,頁面初始化的方法不執行
https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/article/details/80271029 https://blog.csdn.net/k4910220
用Python開發PDF編輯器,實現PDF頁面提取,頁面合併與替換
大多數PDF軟體閱讀服務是免費的,但是如果你想編輯一個PDF文件,比如從一個PDF文件中提取指定頁面,合併多個PDF頁面或者實現PDF頁面的替換,你一般需要購買收費軟體才可以。這當然難不倒程式設計師們,尤其Python程式設計師們。今天小編我就帶你利用Django+PyPDF2開發一個比較實用的小A
網頁提交後,當再次返回到提交頁面後,頁面停留在原來的位置
<script language="javascript"> <!-- function window.onload() { if(arr=document.cookie.match(/scrollTop=([^;]+
input點擊鏈接另一個頁面,各種操作。
llb ret onclick 同時 CA www PE eight window 1.鏈接到某頁<input type="button" name="Submit" value="確 定" class="btn" onclick="location.href=‘fi
使用SpringMVC的crud操作時,進行資料修改,但是修改成功後,頁面無法顯示lastName屬性值(被修改的那條記錄)
我這個錯誤的原因在於,把map的鍵寫錯了,它必須和類名第一個字母小寫相同 @ModelAttribute public void getEmployee(@RequestParam(value="id",required=false) Integer id, Map&l
php網站登入後頁面有操作永不退出,無操作2小時內退出
這個功能用redis 和session_id結合起來做 先設定session_id永不超時: $lifeTime = 24 * 3600;//一天 setcookie(session_name(), session_id(), time() + $lifeTime, "/
Spring Boot入門(12)實現頁面訪問量統計功能
在日常的網站使用中,經常會碰到頁面的訪問量(或者訪問者人數)統計。那麼,在Spring Boot中該如何實現這個功能呢? 我們的想法是比較簡單的,那就是將訪問量儲存在某個地方,要用的時候取出來即可,儲存的位置可選擇資料庫或者其他檔案。本例所使用的例子為
mpvue小程式分頁面的頁面配置,顏色、標題、背景等不起作用
在app.json配置了全域性的頁面配置 但是在單個頁面的配置卻不起作用,沒有覆蓋全域性的配置,貌似是 版本更新,原來的一些配置又改了,但是mpvue的文件又沒有說明。 網上找了一下原因,發現是 ①mpvue-loader版本修改所致,所以首先需要升級一下 mpvue-loa
php頁面跳轉session cookie丟失,不能登入等問題解決方法
thinkphp開發的一個專案,登入成功後又跳轉到登入頁面,在提交資訊後輸出session都是正常的,沒有問題,但是頁面跳轉後,session出現丟失現象,無法正常完成登陸。 通過查詢資料,發現原來是bom頭的原因。受COOKIE送出機制的限制,在這些檔案開頭
移動端,JS判斷滑到頁面頂部下滑進行操作
和底部上滑操作,這個比較簡單,原生無特效 topPullDownDo:function(){ var sY,eY,_h,slideNum, UA =navigator.userAgent, isUC=UA.indexOf("UCBro
Java表格仿mysql實現基本操作(連線,分組排序,統計等)
以下是資料矩陣操作類package cn.cgh.table; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; i
併發頁面訪問量統計簡單實現
/** * 根據urls生成佇列陣列 * @return */ private static LinkedList<RequestStc>[] initUris() { Digester digester = new Digeste
js+css控制彈出小視窗之後,後整個頁面背景圖變色,並且不可操作,點選確定,頁面跳轉。。。
<html> <head> <title>彈出一個視窗後,後面的層不可操作 ,點選確定之後跳轉新的頁面</title> <script> function show() //顯示隱藏層和彈出層 {
Unity頁面按鈕,以及對於遊戲頁面設計的詳細操作
以下為初學者一步一步的操作,希望對您有所幫助 對Button按鈕的認識 Button有兩個元件,Image元件可以給按鈕新增背景圖片 Button元件可以設定動畫效果,和按鍵時的效果; NormalColor按鍵正常時的顏色 HighlightedColor 滑鼠放在按鈕上
Web併發頁面訪問量統計實現
頁面訪問量統計,可能在上學的時候就講過如何簡單實現,例如在servletContext中儲存一個頁頁面訪問次數,然後每訪問一次加1;或者每訪問一次就把操作記錄儲存到資料庫,這樣的處理方式,做做實驗就算了,在實際應用中這樣應用對系統性能影響特別大。 第一種方式,因為頁面訪問次數屬於一個公共變數,在對公共變