НЕ используйте временную метку для создания уникального URL-адреса, поскольку для каждой страницы, которую вы посещаете, кэшируется в DOM с помощью jquery mobile, и вы скоро столкнетесь с проблемой нехватки памяти на мобильных телефонах.
$jqm(document).bind('pagebeforeload', function(event, data) {
var url = data.url;
var savePageInDOM = true;
if (url.toLowerCase().indexOf("vacancies") >= 0) {
savePageInDOM = false;
}
$jqm.mobile.cache = savePageInDOM;
})
код активируется перед загрузкой страницы, вы можете использовать url.indexOf (), чтобы определить, является ли URL-адресом тот, который вы хотите кэшировать или нет, и соответственно установить параметр кэша.
Не использовать window.location = ""; для изменения URL-адреса, иначе вы перейдете на адрес, а страница будет загружена не будет. Чтобы обойти эту проблему, просто используйте window.location.hash = "";
Поскольку SQL Server Express не поставляется с агентом SQL, вы можете использовать планировщик Windows для запуска SQLCMD с сохраненной процедурой или сценарием SQL.
http://msdn.microsoft .com / en-us / library / ms162773.aspx
Вы можете использовать планировщик задач для запуска простого консольного приложения, которое будет выполнять инструкцию Sql.
Если вы используете Express Edition, вам нужно будет каким-то образом использовать планировщик Windows или приложение, подключающееся к серверу.
Вы должны использовать планировщик для запуска sqlcmd. Вот несколько инструкций , чтобы заставить sqlcmd работать с экспресс-версией.
Как вы правильно заметили, без процесса агента вам понадобится что-то еще внешнее по отношению к серверу, возможно, служба, которую вы пишете и устанавливаете, или планировщик Windows.
Обратите внимание, что с Express установка для локального приложения, возможно, что машина может не быть включена в то время, когда вы хотите усечь таблицу (скажем, вы настроили ее на усечение каждую ночь в полночь, но пользователь никогда не включает свою машину).
Таким образом, ваша запланированная задача никогда не запускается, и ваш журнал аудита выходит из-под контроля (это также проблема с агентом SQL Server, но можно предположить, что настоящий сервер будет работать без остановок). Лучшая стратегия, если эта ситуация подходит вам, может заключаться в том, чтобы приложение выполняло это по требованию, когда оно обнаруживает, что с момента усечения прошло более X дней или какова бы ни была ваша операция.
Я обнаружил, что у меня работает следующий механизм.
USE Master
GO
IF EXISTS( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[MyBackgroundTask]')
AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[MyBackgroundTask]
GO
CREATE PROCEDURE MyBackgroundTask
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- The interval between cleanup attempts
declare @timeToRun nvarchar(50)
set @timeToRun = '03:33:33'
while 1 = 1
begin
waitfor time @timeToRun
begin
execute [MyDatabaseName].[dbo].[MyDatabaseStoredProcedure];
end
end
END
GO
-- Run the procedure when the master database starts.
sp_procoption @ProcName = 'MyBackgroundTask',
@OptionName = 'startup',
@OptionValue = 'on'
GO
Некоторые примечания: