Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как брать данные из кэша? 
V
    Опции темы
Kosya4ok
Дата 26.2.2008, 13:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Все привет! Не пожскажете как можно сделать следующее?
Как сделать так что бы asp страничка сперва делала запрос на сервер за какими то данными, затем на 1 минуту сохраняла данные в своем кеше, и пользователи которые будут обращаться к данному серверу то эта страничка брала бы значение из кеша, по истечении 1 минуты aspx страичка снова дела запрос на веб сервер и т.д...

Написал вот такое:
Но шо то данные беруться не из кеша а каждую секунду идет обрашение к веб серверу:
Код

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Footer.aspx.cs" Inherits="Footer"
    EnableSessionState="False" %>
<%@ OutputCache Duration="60" VaryByParam = "None" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="refresh" content="60">
    
    <title>Footer</title>

    <script src="javascript/common.js" type="text/javascript"></script>

    <link rel="stylesheet" href="fck_editorarea.css" type="text/css" media="all" />

    <script language="javascript" src="javascript/reader.js"></script>

    <style>
        .hideDiv
        {
            display:none;
        }            
        .showDiv
        {
            display:true;
        }
    </style>   
</head>
<body>
    <form id=form1 runat=server>
           <div id = MessageShowDiv class = showDiv>
                  <nobr><asp:Literal id=DisplayString  Visible=true runat=server Mode=Transform/></nobr>
          </div>
                <marquee behavior=scroll scrolldelay=10 
                onmouseover = this.stop() onmouseout=this.start() loop=-1>
                <%= DisplayString.Text = CacheForFooter.FooterReader () %> <!-- Метод который обращется к веб серверу -->
                     <div id = MarqDiv style=border:none class = hideDiv > 
                    </div>
            </marquee>
    </form>
</body>
</html>

Файл Footer.cs в его метод Page_Load я ничего не дописывал...

Это сообщение отредактировал(а) Kosya4ok - 26.2.2008, 13:46
PM MAIL   Вверх
Kosya4ok
Дата 26.2.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Всем спасибо за внимание! Сам дописал  smile 
PM MAIL   Вверх
Kosya4ok
Дата 27.2.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Теперь вопрос немного изменился. Раммотрим например такую ситуацию. Допустим несколько юзеров пытаются получить доступ к странице и один из них отправляет запрос на веб сервисы, а в это время других киентов надо как то залочить. Далее обработанный запрос от веб сервисов помещается в кеш и затем из кеша вернуть им всем резальтат выполнения одного запроса к веб сервису...

Это сообщение отредактировал(а) Kosya4ok - 27.2.2008, 13:16
PM MAIL   Вверх
Mymik
Дата 27.2.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



попробуй после выполнения сделать 
Код

Response.Cache.SetNoServerCaching();

Думаю что получится


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Kosya4ok
Дата 27.2.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Ниче не понял. Этот кусочек куда надо вставить то?
Например вот у меня страничка под номером 1 к которой обращаются клиенты. В ней я делаю запрос на веб сервисы и ответ сохраняю в кеш на 1 минуту. В это время другие юзера также открывают свои странички и им с кеша возвраащеться значение.
Код

public partial class Footer : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {    
        string str = CacheForFooter.FooterReader(); //функция которая вызывает веб сервисы
        Context.Cache.Insert("key", str, null, DateTime.Now.AddSeconds(60), TimeSpan.Zero);
    }
}

Но вот представим что одновременно клиенты делаю запрос к данной страничке, то для того чтобы снизить нагрузку на сервер следует самого перпого пропустить а остальных залочить, а когда вернеться запрос с сервера вернуть из кеша им значение.
Вы бы не могли болле одробно описать что и куда вставлять ваш код?

Это сообщение отредактировал(а) Kosya4ok - 27.2.2008, 21:34
PM MAIL   Вверх
Kosya4ok
Дата 27.2.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 132
Регистрация: 23.7.2007

Репутация: нет
Всего: нет



Ээээ..да проблема уже не актуальна  smile 
Заметил что када пишешь то сам понимаешь че делать то надо... smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.