求大佬们品鉴下如下数据存储的cocos lua代码

重点是为毛要在一个帧轮询里面做存储操作,求大佬赐教

local T , super = Class(…,“base.ControlBase”)
local DataGamePlayer = require(“player.DataGamePlayer”)

function T:init()
super.init(self)
self.m_data = {}
self.m_isDirty = false
local writeablePath = GB.fileUtil:getWritablePath()
self.m_dataFile = writeablePath … “/data”
self.m_interval = 1
self.m_escape = 0

if GB.fileUtil:isFileExist(self.m_dataFile) then
    local data = GB.fileUtil:getDataFromFile(writeablePath .. "/data")
    local func = loadstring(data)
    if func then
        self.m_data = func()
    end
end

end

function T:setRoleData(key,value)
AssertString(key)
local uid = DataGamePlayer:getUid()
Assert(uid > 0)
local data = self.m_data[uid]
if not data then
data = {}
self.m_data[uid] = data
end
if data[key] ~= value then
data[key] = value
self.m_isDirty = true
end
end

function T:getRoleData(key)
AssertString(key)
local uid = DataGamePlayer:getUid()
Assert(uid > 0)
local data = self.m_data[uid]
if data then
return data[key]
end
end

function T:setData(key,value,isFlush)
AssertString(key)
if self.m_data[key] ~= value then
self.m_data[key] = value
self.m_isDirty = true
end
if isFlush then
self:save()
self.m_escape = 0
end
end

function T:getData(key)
AssertString(key)
return self.m_data[key]
end

function T:getLang()
return self.m_data[“lang”] or os.getLang()
end

function T:dataToString(data)
local printChar , keyToString , valueToString, tableToString

printChar = function(c,num)
    local tmp = ""
    for i = 1 , num do
        tmp = tmp .. c
    end
    return tmp
end

keyToString = function(key)
    local keystr = ""
    if type(key) == "number" then
        keystr = "[" .. key .. "]"
    else
        keystr = tostring(key)
    end
    return keystr
end

valueToString = function(value,deep)
    local valuestr = ""
    if type(value) == "table" then
        valuestr = tableToString(value, "", deep + 1)
    elseif type(value) == "string" then
        valuestr = "\'" .. value .. "\'"
    else
        valuestr = tostring(value)
    end
    return valuestr
end

tableToString = function(t,retstr, deep)
    retstr = retstr .. "{\n"
    for key , value in pairs(t) do
        retstr = retstr .. printChar('  ',deep) .. keyToString(key) .. " = " .. valueToString(value,deep + 1) .. ",\n"
    end
    retstr = retstr .. printChar(' ',deep) .. "}"
    return retstr
end
local str = "return " ..  tableToString(data,"",1)
return str

end

function T:save()
if self.m_isDirty then
local str = self:dataToString(self.m_data)
GB.fileUtil:writeStringToFile(str,self.m_dataFile)
self.m_isDirty = false
end
end

–帧轮询
function T:update(dt)
self.m_escape = self.m_escape + dt
if self.m_escape >= self.m_interval then
self:save()
self.m_escape = self.m_escape - self.m_interval
end
end