- 浏览: 221937 次
文章分类
- 全部博客 (155)
- activerdf (1)
- html (0)
- depoly (1)
- src_present (1)
- ria (1)
- beast (2)
- cache (1)
- acts_as_atggable (1)
- http (1)
- talk (1)
- rest (1)
- rake (1)
- vim (2)
- active_resource (1)
- jruby activerecord_jdbc (1)
- nginx (1)
- plugin (1)
- gui (1)
- push (1)
- 介紹 (1)
- rails (19)
- regex (1)
- svn (1)
- 說明 (13)
- gem (4)
- ruby (16)
- rails12 (2)
- fastcgi (1)
- os (1)
- mongrel (5)
- scale (4)
- quickref (1)
- 安裝 (5)
- tiobe_index (2)
- planet (1)
- lighttpd (4)
- Capistrano (1)
- 嘴砲 (2)
- performance (4)
- ide (6)
- jruby (12)
- railsconf (1)
- activerecord (2)
- ajax (3)
- ruby.net (1)
- 程式 (1)
- actionmailer (1)
- company (2)
- security (1)
- redmine (1)
- book (2)
- news (2)
- 廣告 (1)
最新评论
-
bluerose:
你好,我下载了文件是Textile格式的。应该怎么阅读呢?我想 ...
Textile,RedCloth,Vim -
whg333:
谢谢,LZ是香港或台湾人士?怎么都是繁体?
學習 Ruby on Rails 要看的書 -
jerry:
https可以作吗?
Net::HTTP 使用方式 -
thinhair:
能不能具体点? 这个Config文件在那啊?
用 JRuby 來連接 Oracle -
dearsuper:
就是希望少占资源。
Another Ruby IDE:InterlliJ Idea for Ruby Plugin launch
之前介紹過 Page Cache,那是一個將所有動態內容都變成靜態頁面,藉由不經過 CGI ,來達到最大覆載度的技巧。但是他的應用性不夠廣泛,僅限於下面的用途
使用方式如下
在 View 裡面
選定要 Cache 的部份,將他用 cache block 包起來
理論上 cache 是 work 的,但是如果你去翻 log 時,你會發現 db 一樣會去做相關的 operation。原因是因為我們並沒有告訴 Rails ,Controller 裡面某段 code 是已經 cache 好的東西,不需要去執行。我們都知道 db 通常是最大的 bottleneck ,如果 cache 沒辦法避免 db operation,那這樣的 cache 也僅僅省去了 render 的時間,並沒有太多幫助。
在 Controller 裡面
為了避免這樣,我們要在 controller 裡面指明,當 Fragment Cache work 時,某些 operation 是可以不用執行的。
要如何 Expire Cache ?
Expire Cache 也是相當的方便,在 controller 裡面使用 expire_fragment 即可。
- 流量超級大的頁面
通常是 index page,一個網站可能有幾百個頁面,但是通常 index page 一個頁面就佔了三到五成的流量,而且 index page 通常每個網站都是一個小時,了不起 15 分鐘更新一次,這個時候用 index page 可以大幅度增加網站覆載度。 - 頁面修改的頻率遠遠小於讀取的頻率
例如 Blog 系統,我可能一天寫一篇文章,但是一天讀取我的 Blog 的人可能有幾千個,這個時候為什麼每次讀取頁面的時候都得去 DB 撈資料,組合,Render 出來呢?還不如用靜態頁面儲存,然後每次修改頁面時都重新產生新的 HTML 即可
使用方式如下
在 View 裡面
選定要 Cache 的部份,將他用 cache block 包起來
<% cache do %>如此,當我們用 production mode 的時候,你就會發現會出現 tmp/cache/你的controller/你的action.cache 這個檔案,也就是 cache 的內容。並且 reload 的時候,那個 block 的 content 都是不變的。
我們要 cache 的 content
<% end %>
理論上 cache 是 work 的,但是如果你去翻 log 時,你會發現 db 一樣會去做相關的 operation。原因是因為我們並沒有告訴 Rails ,Controller 裡面某段 code 是已經 cache 好的東西,不需要去執行。我們都知道 db 通常是最大的 bottleneck ,如果 cache 沒辦法避免 db operation,那這樣的 cache 也僅僅省去了 render 的時間,並沒有太多幫助。
在 Controller 裡面
為了避免這樣,我們要在 controller 裡面指明,當 Fragment Cache work 時,某些 operation 是可以不用執行的。
unless read_fragment :action => '這個action的名字'如此如果已經 cache 過了, Rails 就會避開這段 code 的執行。
跟 cache 有關的 operation
只要有 cache ,就不需要去執行的 code.....
end
要如何 Expire Cache ?
Expire Cache 也是相當的方便,在 controller 裡面使用 expire_fragment 即可。
expire_fragment :action => '這個action的名字'以上都是最最最基本的 Fragment Cache 的機制,但是如果只知道這些東西,根本做不了太多事情,我們下次來談談比較實用的 Fragment Cache 機制。
发表评论
-
Rails 取名的一些禁忌
2007-06-26 06:11 1285今天寫 Rails 寫到一半,突然發現出現wrong numb ... -
Rails 2.0 預計的新特色
2007-06-03 08:03 979Ruby on Rails 作者 DHH 在 Rails Co ... -
script/plugin
2007-05-05 09:49 926well, 由於我跟 Rails 不熟 ... -
搞清楚你的 Rails Version
2007-04-18 06:13 1146目前使用 Rails 的網站, ... -
Persistent Login on Rails
2007-04-05 06:24 943Rails 社群一向是使用最方便的 Session 來做 lo ... -
Fragment Cache Part 2
2007-03-28 12:12 1157上次介紹了如何使用最基本的 Fragment Cache,現在 ... -
DHH 寫了一個 OpenID 的 Rails Plugin
2007-02-28 14:50 1204既然大家都覺得 OpenID 很有搞頭,那身為尖端科技的結晶的 ... -
一個在 Rails 跟 Django 徘徊設計師的真情告白
2007-02-28 15:26 2225AjaxWhoIs 這個網站的作者最近發表一篇文章 Why I ... -
修改 Ruby 預設的 Time 顯示格式
2007-02-25 08:21 1123Rails 預設的 Datetime format 是類似這樣 ... -
Rails 的原始碼行數比?
2007-02-17 14:24 1140實例看完 JavaEye 今天的文章,發現到根據 Robbin ... -
Pagination Collection:進階版的分頁
2007-02-06 00:00 1323當我第一眼看到 Pagination 時,我感覺到他是一個很好 ... -
利用 File_column 來做到縮圖
2007-01-23 09:25 1286圖片上傳,縮圖製作這幾個功能可以說是 Web App 做到爛掉 ... -
Rails 1.2 所有 gem 提供下載
2007-01-19 14:49 9864因為你們好像有國外網路連線速度上面的問題 所以我將所有 Rai ... -
HTML?New Template System ?
2007-01-18 00:29 1375現行 Scripting Language 不 ... -
Faster CSV:做報表的好幫手
2007-01-16 09:23 1389FasterCSV 是 Ruby 當中一個處理 CSV 檔案的 ... -
Windows 上面安裝 Ruby on Rails
2007-01-05 13:05 1740其實不太想寫 Windows Tuto ... -
加強 Active Record 的關連性
2007-01-10 11:54 865很多時候我們會使用 Active Record裡面的條件式關連 ... -
「易遊」使用 Ruby on Rails 的原因
2007-01-10 14:20 1205易遊是一個對岸開發, ...
相关推荐
fragment-cache, 重前端元素的部分和异步缓存的WordPress插件 fragment-缓存 fragment 缓存是一个用于部分和异步前端元素缓存的WordPress插件。 它目前支持缓存导航菜单。小部件和库。高速缓存构建在临时 API ( 。随...
Fragment1通过调用Activity的方法,Activity再将消息传递给Fragment2。这种方式简单易懂,但增加了Activity的负担,可能导致Activity变得复杂。 2. **使用EventBus或RxBus**:EventBus是一种发布/订阅事件总线,...
1. **布局文件中声明嵌套Fragment**: 在父Fragment的布局XML文件中,可以像添加普通View那样添加子Fragment。使用`<fragment>`标签,并指定子Fragment的类名和ID。 ```xml <fragment android:id="@+id/nested_...
1. **基本通信方式**: - **findFragmentByTag() 或 getFragmentManager().findFragmentById()**:通过标签或ID获取另一个Fragment实例,然后直接调用其公共方法进行交互。 - **接口回调**:创建一个接口,让需要...
1. **Fragment的嵌套原理** - Fragment可以被添加到另一个Fragment中,形成嵌套结构。这在处理层次丰富的用户界面时非常有用,例如在TabLayout与ViewPager结合的场景下,每个Tab下的内容可以由一个主Fragment管理,...
1. **创建Fragment**:首先,你需要创建一个或多个子Fragment类,继承自`androidx.fragment.app.Fragment`。每个子Fragment都有自己的布局XML文件,定义了该Fragment的视图结构。 2. **在主Fragment中添加布局**:...
GraphQL :: FragmentCache GraphQL::FragmentCache具有缓存响应片段的能力,可的能力:您可以将任何字段标记为已缓存,并且永远不会再次解析(至少在缓存有效时)。 例如,以下代码为每个帖子缓存title : class ...
1. 当Fragment嵌套在另一个Fragment中时,需要处理好父Fragment与子Fragment的生命周期,避免因不当操作导致的异常。 2. 在使用ViewPager时,确保不要过度加载页面,以免影响性能。 3. 为了提高用户体验,可以在页面...
1. **通过Intent**: 当Fragment作为Activity的一部分启动时,Activity可以通过Intent将数据传递给Fragment。然而,由于Fragment并不直接通过Intent启动,因此这种方式通常用于Activity启动另一个Activity时传递数据...
1. `ViewPager`基本使用: - 创建适配器:`ViewPager`需要一个实现了`PagerAdapter`接口的类来提供页面。通常我们会使用`FragmentPagerAdapter`或`FragmentStatePagerAdapter`,前者适用于页面数量较少且不需动态...
1. **Fragment的嵌套**: - 在Android中,一个Activity可以包含多个Fragment,而一个Fragment也可以包含其他Fragment,这就形成了Fragment的嵌套结构。 - 通常,我们通过在Fragment的布局文件中添加<fragment>标签...
1. **创建Fragment和子Fragment**:首先,你需要创建两个或更多个Fragment类,每个类代表一个选项卡的内容。然后,针对每个Fragment,你可能还需要创建对应的布局XML文件,定义其视图结构。 2. **设置ViewPager**:...
1. **创建子Fragment**:首先,你需要创建要嵌套的Fragment类,并实现其逻辑和视图。 2. **在Parent Fragment中添加布局**:在Parent Fragment的布局XML文件中,添加一个可以容纳子Fragment的容器,通常是`...
Android Fragment的使用。 功能:用一个Activity来管理两个Fragment,并且在其中一个Fragment中,点击按钮,影响到第二个Fragment。Activity中用list来管理Fragment。fragment布局采用垂直排列。
1. `onAttach(Activity activity)`:当Fragment与其关联的Activity建立关联时调用,这时可以获取到Activity的引用,进行必要的初始化操作。 2. `onCreate(Bundle savedInstanceState)`:Fragment创建时调用,可以在...
1. **创建Fragment布局**:首先,我们需要为每个要添加的Fragment创建对应的XML布局文件,例如`fragment_left.xml`和`fragment_right.xml`。这些布局文件会定义Fragment的视图结构。 2. **在Activity布局中声明...
fragment 与 fragment 通信 fragment 向 activity 传值 activity 向 fragment 传值 代码是自己手敲的
在Android应用开发中,Fragment是UI组件的一种,它允许开发者在一个Activity中添加多个视图,增强了界面的灵活性和可交互性。"点击切换Fragment并滑动切换Fragment"的主题涉及到两个核心概念:用户交互触发的...
1. **Fragment**:`Fragment`是Android应用程序组件的一部分,可以独立于Activity存在,也可以在Activity内部进行嵌套。它有自己的生命周期和UI。在`TabFragment`中,每个标签通常会对应一个Fragment实例,显示不同...
"Android在Fragment中实现监听触摸事件" Android在Fragment中实现监听触摸事件是指在Android应用程序中,如何在Fragment中监听触摸事件。Fragment是Android应用程序中的一个组件,它可以在Activity中使用,但是它并...